1. 程式人生 > 其它 >資料結構期末自測題(對2020武大信管資料結構PPT的針對性複習題)

資料結構期末自測題(對2020武大信管資料結構PPT的針對性複習題)

資料結構複習題
命題人:20信二 郭宗涵

1.簡述資料結構的概念。(4個點)
2.G={<k1,k3>,<k1,k8>,<k2,k3>,<k2,k4>,<k2,k5>,<k3,k9>,<k5,k6>,<k8,k9>,<k9,k7>,<k4,k7>,<k4,k6>}, <a,b>表示一條邊的起點與終點,求該圖的開始起點與結束終點。
3.簡述空間複雜度概念。
4.根據表格整理出連結串列資料的正確順序。

5.說明迴圈單鏈表與單鏈表,迴圈雙鏈表與雙鏈表的區別。
6.帶虛擬頭結點的單鏈表和不帶虛擬頭結點的單鏈表的優勢體現在哪裡?如何應對將頭結點與虛擬頭結點弄混的出題人?
(和不帶虛擬頭結點的單鏈表相比,帶虛擬頭結點的單鏈表不僅統一了第一個結點及其後繼結點的處理過程,還統一了空表和非空表的處理過程。)
[203. 移除連結串列元素]

https://leetcode-cn.com/problems/remove-linked-list-elements/
7.對單鏈表,哪邊是頭,哪邊是尾?插入時,(A)與(B)能否交換,為什麼?
q = ListNode(13)
q.next = head.next ---- (A)
head.next = q ---- (B)
(注意:這裡由於出題人弄不清楚頭結點與虛擬頭結點的區別,所以取了個head這樣**的名字,考生自己要清楚,別被帶到溝裡去了)
[61. 旋轉連結串列]
https://leetcode-cn.com/problems/rotate-list/
8.敘述棧頂指標, (虛擬)隊頭指標,隊尾指標的概念。
注意:為保證佇列元素操作的一致性,類似於虛擬頭指標的概念,建立虛擬隊頭指標,指向隊首元素的前一個元素
9.“秋江楚雁宿沙洲,雁宿沙洲淺水流。流水淺洲沙宿雁,洲沙宿雁楚江秋。”請使用棧的基本操作來判斷一個單詞是否為迴文單詞。(只允許使用一個棧)
[劍指 Offer II 018. 有效的迴文]
https://leetcode-cn.com/problems/XltzEq/

[234. 迴文連結串列]
https://leetcode-cn.com/problems/palindrome-linked-list/
10. 簡述如何檢驗括號有效性。
[20. 有效的括號]
https://leetcode-cn.com/problems/valid-parentheses/
11. 在玩遊戲的時候,一般會標記重生點,角色快死了可以回到重生點復活繼續遊戲,請從資料結構角度簡單分析其基本原理。
12.!!!如何解決佇列假溢位問題?
13.!!!如何在迴圈佇列中區分隊空與隊滿?
https://leetcode-cn.com/problems/design-circular-queue/

  1. 請分別使用迴圈順序佇列的基本操作和遞迴來計算某個月的斐波那契的兔子總數。兩種做法在時間複雜度與空間複雜度上有什麼不同?這樣的做法在n>=47時應當注意什麼?
    [劍指 Offer 10- I. 斐波那契數列]
    https://leetcode-cn.com/problems/fei-bo-na-qi-shu-lie-lcof/comments/
    [斐波那契數列兩種演算法的時間複雜度]
    https://www.cnblogs.com/abyss1114/p/7272657.html
    15.如何用遞迴解決漢諾塔問題?如何解釋程式的執行過程?
    [面試題 08.06. 漢諾塔問題]
    https://leetcode-cn.com/problems/hanota-lcci/

  2. 如何用棧實現佇列,又如何用佇列實現棧(角色互換法)?基於此,請說說你是如何認識棧與佇列的時間本質的?

  3. !!!簡單字串匹配演算法的劣勢體現在哪兒?如何改進?改進後的kmp演算法的next陣列是如何求的?求出next陣列後又怎麼辦?

18.在用陣列儲存矩陣的時候,如何避免元素重複儲存(對稱矩陣->三角矩陣),如何處理零元素大量規律存在(三角矩陣),以及大量不規律存在(稀疏矩陣(三元組表法,十字連結串列法))的問題?
19.應當如何定義葉子結點?由此看出樹與圖具有怎樣的關係?
(結點的度,葉子結點,分支結點,樹的度)
20.如何用非技術人員也能聽懂的語言描述樹的結構?(聯絡家系圖)
(孩子結點,雙親結點,兄弟結點,祖先結點,子孫結點,結點的層次(類似輩分),堂兄弟結點(有病吧),樹的深度,有序樹,無序樹)
21.如何用樹的性質進行數學運算?(難/麻煩)
(1)樹的結點數目=所有結點的度的總和+1
(2)度為k的樹第i層最多有k的(i-1)次方個結點
(3)深度為h的k叉樹最多有(k的h次方-1)/k-1
(4)具有n個結點的k叉樹的最小深度為logk[n(k-1)+1]取整
22.請先回答問題先序遍歷之先是什麼先?先序遍歷,後序遍歷,層次遍歷與前序遍歷,中序遍歷,後序遍歷,層次遍歷的關係是什麼?再寫出下面這個樹的先序遍歷,後序遍歷,層次遍歷的節點順序。(不要背,遞迴看即可)
23.試證明:對任何非空二叉樹 T,若其葉結點個數為 n0,度數為 2 的結點個數為 n2,則n0 = n2 + 1
24.試比較二叉樹的順序儲存與鏈式儲存,說明其在不同應用場景下的優缺點。
25.(必考&&重要1)

26.簡述樹與二叉樹的區別
戀拽FHB 2017-04-24 23:22樹可以為空,叫空樹(嚴蔚敏《資料結構(C語言版)》第118頁明確定義:樹是n(n>=0)個結點的有限集)。他們之間的差別主要在於實現方式的不同。二叉樹是二叉連結串列(有左右子樹的指標),樹通常是兄弟孩子連結串列(有孩子指標,兄弟指標,兩個指標)。二叉樹區分左右,非有序樹不區分左右。

27.滿二叉樹與完全二叉樹的區別是什麼?(滿二叉樹是完全二叉樹的一種特例)
28.