- 已知一棵二叉樹先序遍歷和中序遍歷分別為?ABDEGCFH?和?DBGEACHF,請畫出這個二叉樹的邏輯結構并寫出后序遍歷的序列。
先序遍歷:ABDEGCFH
中序遍歷:DBGEACHF
先序遍歷看出根為A,左子樹DBGE,右子樹CHF
A的左子樹
再看先序遍歷,可以看出左子樹的根為B,右子樹根為C
看中序遍歷 D為B的左子樹,右子樹要知道GE的關系看先序,E先輸出,所以B的右子樹為E,要看G為E的左子樹還是右子樹要看中序遍歷,G先輸出說明G為E的左子樹
A的右子樹
看先序遍歷,FH都在C的后面輸出,所以都在右子樹上,并且F先輸出所以H為右子樹的根,看H為F的左子樹還是右子樹,看中序遍歷H先輸出,所以H為F的左子樹。
- 假定用于通信的某電文僅由8個字母構成,各字母在電文中出現的頻率分別為(12,5,3,7,14,21,9,15)。請完成:
- 構造哈夫曼樹;2)為這8個字母設計不等長的Huffman編碼,并計算WPL。
N個節點構造的構造哈夫曼樹,最后會有2N-1個節點
先排序 3 5 7 9 12 14 15 21
- 使用序列 {57,40,38,11,13,34,48,75,6,19,9,7} 構造一個大頂堆,請給出構成完成的初始序列。
堆:完全二叉樹
存儲結構:數組存儲
0 ??1 ??2 ??3 ??4 ??5 ??6 ??7 ??8 ?9 ?10 11
57,40,38,11,13,34,48,75,6,19,9,7
- 找到最后一個分支節點,因為后面都是葉子結點,一定符合堆的規則(根大于左右子樹的根),這個節點在下標n/2的位置。
- 左孩子 :2n+1 右孩子 :2n+2
直接在數組中進行建堆:
7的下標為11,所以最后一個分支節點下標 5 ,就是34
根節點 左孩子 ??????????右孩子 交換情況
5 - 34 ??? 11 - 7 不交換
4 - 13 9 - 19 ?????? ??10 - 9 19與 13交換
0 ??????1? ? ? 2? ? ? 3? ? ?4? ? 5? ? ? ?6? ? ? 7? ? 8? ? 9? ? 10? 11
57,40,38,11,19,34,48,75,6,13,9,7
3 - 11 ? 7 - 75 ??8 - 6 75與11交換
0 ??????1? ? ? 2? ? ? 3? ? ?4? ? 5? ? ? ?6? ? ? 7? ? 8? ? 9? ? 10? 11
57,40,38,75,19,34,48,11,6,13,9,7
2 - 38 5 - 34 ??6 - 48 ????????48與38交換
0 ??????1? ? ? 2? ? ? 3? ? ?4? ? 5? ? ? ?6? ? ? 7? ? 8? ? 9? ? 10? 11
57,40,48,75,19,34,38,11,6,13,9,7
1 - 40 3 - 75 ??4 - 19 ?75與40交換
0 ??????1? ? ? 2? ? ? 3? ? ?4? ? 5? ? ? ?6? ? ? 7? ? 8? ? 9? ? 10? 11
57,75,48,40,19,34,38,11,6,13,9,7
0 - 57 1 - 75 ??2 - 48 ?75與57交換
0 ??????1? ? ? 2? ? ? 3? ? ?4? ? 5? ? ? ?6? ? ? 7? ? 8? ? 9? ? 10? 11
75,57,48,40,19,34,38,11,6,13,9,7
- 設有向圖G中有向邊的集合E={<1,2>,<2,3>,<1,4>,<4,2>,<4,3>},請給出拓撲排序的序列。
- 若一棵度為 4 的樹中度為 2、3、4 的結點個數分別為 3、2、2,請計算出該樹的葉子結點的個數。
度的和:2*3 + 3*2 + 4*2 = 20
樹的節點數:度的和 + 1 = 21 (度可以理解為指向他后繼的邊,所以根節點沒有前驅指向他,所以節點數為度+1)
葉子節點度為0 :21 - 3 - 2 - 2 = 14
- 在結點數是?67 的完全二叉樹,按層次,從左到右編號,請計算最后一個非葉子結點的編號。
67 / 2 = 33就是求最后一個分支節點的下標 題3
- 一個線性序列(36,13,40,63,22,6),假定采用散列函數Hash(key)=key%7來計算散列地址,將其散列存儲在A[0~9]中,采用線性探測再散列解決沖突。構造哈希表,并計算等概率情況下的查找成功和不成功的平均查找長度。
- 在下面的網圖中使用Dijkstra算法,從頂點0出發,到各頂點的最短路徑,要求寫出計算過程。
?
v0到V1的最短路徑5 ,路徑節點:V0 -> V3 -> V1
v0到V2的最短路徑1 ,路徑節點:V0 -> V2
v0到V3的最短路徑2 ,路徑節點:V0 -> V3
v0到V4的最短路徑4 ,路徑節點:V0 -> V2 -> V4
?