未理解的題

關於樹的深度優先搜索算法描述錯誤的是

A : 按照某個條件往前試探搜索,如果前進中遭遇失敗, 則退回頭另選通路繼續搜索,直到找到條件目標爲止
B: 先訪問該節點所有的子節點, 遍歷完畢後選取它未訪問過的子節點重複上述過程,直到找到條件目標爲止
C: 假設樹的頂點樹爲V,則算法的空間複雜度爲O(V)
D: 深度優先算法非常適合使用遞歸來實現

對於C選項來說,我不是太理解,因爲DFS,空間複雜度就是樹遞歸的深度, 那麼就是logH,除非是樹退化爲鏈表的情況纔是空間複雜度爲O(V)啊

,因爲DFS,空間複雜度就是樹遞歸的深度, 那麼就是logH,除非是樹退化爲鏈表的情況纔是空間複雜度爲O(V)啊

將10階對稱矩陣壓縮存儲到一維數組A中,則數組A的長度最少是多少

在這裏插入圖片描述
比如5階的爲5 * 5 / 2 + 對角線的另一半 (5 / 2) = 12.5 + 2.5 = 15個長度
所以10階的爲10 * 10 / 2 + 10 / 2 = 50 + 5 = 55

需要頻繁的插入和刪除操作使用數組,隊列,鏈表,棧這四種數據結構中的 鏈表最合適,如果只考慮只在最後一個位置頻繁刪除和插入那麼棧,鏈表都可以
已知循環隊列存儲在一維數組A[0…n-1]中,且隊列非空時front和rear分別指向隊頭和隊尾元素, 若初始隊列爲空,且要求第1個進入隊列的元素存儲在A[0]處,則初始時front和rear的值分別是0和n - 1

循環隊列需要留出一個空間,方便判斷隊列是否爲滿(循環隊列解決假溢出);
常用的隊列實現:
當隊列爲空時,front == rear;其中rear指向隊尾元素的下一個位置,即下一個元素入隊的位置
入隊操作:先賦值,再rear = (rear+1)%MAXSIZE;此時rear仍然指向隊尾元素的下一個位置

但是題目中!!!有一句!!!front和rear分別指向隊頭元素和隊尾元素!!!
rear指向隊尾元素!!!
把常用的隊列實現方法來了個886
那麼,在這道題中,判斷隊滿和隊空我是一時半會想不下去了。。。(front == (rear + 1)%MAXSIZE 既可以是滿,也可以是空啊= =,除非說還要留一個空間出來)

但是!!!
這道題說,初始時隊列爲空,無論如何還是front == (rear + 1)%MAXSIZE.

簡單的說就是,隊列是空的,rear指向隊尾元素,front指向隊頭元素,入隊了,(rear +1)%n,這個時候A[0]既是隊頭元素,也是隊尾元素,rear = front = 0;所以是rear = n-1

在一個長度爲n的順序表中刪除第i元素 ,要移動n - i個元素, 如果要在第i個元素前插入一個元素,要後移 n - i + 1

這裏注意第i個元素不包含第0個元素,因爲我們想到的是數組從0下標開始,實際計算的時候 第0個下標在第1個元素的位置

二叉樹的先序遍歷爲EFHIGJK 和中序遍歷 HFIEJKG, 則二叉樹爲

                E

       F                    G

   H      I           J
	                     K

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章