①、數據結構
在按層次遍歷二叉樹的算法中, 需要藉助的輔組數據結構是( )
A:隊列
B:棧
C:線性表
D:有序表
答案:A
解析:二叉樹層次遍歷指的是二叉樹節點按深度次序由高到低,由左到右接受訪問。層次遍歷二叉樹要用到隊列,在遍歷時具體做法如下:首先把根節點保存在一個隊列中,然後從隊列中取出節點訪問,訪問完畢後,把已經訪問節點的左右孩子節點放入隊列中,再次從隊列中取出訪問。這樣重複下去,直到所有層的節點都被訪問。隊列的特點是先進先出,因此使用隊列可以保證層序遍歷的節點次序。
②、C++
調用一成員函數時, 使用動態聯編的情況是( )
A:通過對象調用一虛函數
B:通過指針或引用調用一虛函數
C:通過對象調用靜態函數
D:通過指針或應用調用一靜態函數
答案:A
解析:聯編就是將模塊或者函數合併在一起生成可執行代碼的.處理過程,同時對每個模塊或者函數調用分配內存地址,並且對外部訪問也分配正確的內存地址,它是計算機程序彼此關聯的過程。按照聯編所進行的階段不同,可分爲兩種不同的聯編方法:靜態聯編和動態聯編。
靜態聯編是指在編譯階段就將函數實現和函數調用關聯起來,因此靜態聯編也叫早綁定,在編譯階段就必須瞭解所有的函數或模塊執行所需要檢測的信息,它對函數的選擇是基於指向對象的指針(或者引用)的類型,C語言中,所有的聯編都是靜態聯編。
動態聯編是指在程序執行的時候纔將函數實現和函數調用關聯,因此也叫運行時綁定或者晚綁定,動態聯編對函數的選擇不是基於指針或者引用,而是基於對象類型,不同的對象類型將做出不同的編譯結果。C++中一般情況下聯編也是靜態聯編,但是一旦涉及到動態多態和虛函數就必須使用動態聯編。