1. 在一棵度為4的樹t中,若有20個度為4的結點,10個度為3的結點,1個度為2的結點,10個度為1的結點,則樹t的葉結點個數是:
[解析]設b為分支總數,n為結點總數,n0, n1, n2 ...分別代表度為0 ,1, 2的結點的個數。通過分析可以知道除了根結點,每乙個結點的上面都連有乙個分支,故得到關係1:b + 1 = n 其中b = n1 + 2n2+ 3n3 + ... 帶入題目中的資料可知答案為82
[答案] 82
2.將森林轉換為對應的二叉樹,若在二叉樹中,結點u是結點v的父結點的父結點,則在原來的森林中,u和v可能具有的關係是: 父子關係; 2. 兄弟關係; 3. u的父結點與v的父結點是兄弟關係
[解析]首先需要知道將森林轉化為二叉樹的方法。
森林->樹: 把一棵樹看成乙個結點,不同的樹之間是兄弟關係。
普通樹->二叉樹:左孩子,右兄弟。在兄弟之間加一條連線,對於每個結點,保留長子與其連線,去掉其他孩子與他的連線。
[答案] 1和2
3. 具有65個結點的完全二叉樹其深度為(根的深度為1):
[解析]完全二叉樹是一種特殊的二叉樹,當且僅當其每乙個結點都與相應的滿二叉樹編號1~n一一對應時,才是完全二叉樹。又因為深度為k的二叉樹最多有2^k-1個結點,可推出具有n個結點的完全二叉樹的深度為[log2n]+1([ ]表示不超過這個數的最大整數)。
[答案] 7
4. 將依次插入初始為空的二叉搜尋樹。則該樹的後序遍歷結果是:
[解析]二叉搜尋樹:或者是一棵空樹,或者是具有下列性質的二叉樹: 若它的左子樹不空,則左子樹上所有結點的值均小於它的根結點的值; 若它的右子樹不空,則右子樹上所有結點的值均大於它的根結點的值
根據定義,這一題的二叉搜尋樹為
[答案] 3, 1, 6, 13, 11, 5
5. 一棵二叉樹的後序序列: fdbgheca,中序序列:bfdagehc。前序遍歷序列為( )。
[解析] 根據後序遍歷,最後乙個就是根結點所在,所以在給定的中序序列裡,以a為界分開,左邊的bfd,右邊的gehc。對於左邊那一小堆,從後續序列可知那乙個小堆的根結點是b,以此類推可以得到整棵樹:
[答案] abdfcegh
二叉樹習題之重建二叉樹
對於給定前序和中序的重建方法。1 前序的第乙個元素一定是樹的根節點,在中序集合中找到此元素,那麼該元素的左面即為根的左子樹,右面為右子樹。2 找到前序的第二個元素,重複上面的步驟。自寫程式的效率大概為 n n 2 或最大的那個元素 這點很坑,斟酌改掉 目前沒發現更快的寫法 自己寫 結果以連續記憶體的...
樹轉二叉樹(有序樹轉換為二叉樹)講解
description 輸入一顆普通有序樹,將它轉換為對應的二叉鍊錶儲存,然後輸出該二叉樹的先序和後序遍歷序列。input 包含多組測試資料。每組測試資料第1行為樹的結點個數n 1 n 26 接下來包含n行,其中第i行 1 i n 的資料依次為結點i的資料值ai 為乙個小寫字母 後面各元素為結點i的...
二叉樹 滿二叉樹和完全二叉樹
二叉樹是一種很重要的非線性資料結構,它是樹結構的一種重要的型別 它不是樹結構的特殊情況 其特徵是每個節點最多有兩個子樹。二叉樹的特點 二叉樹每個結點最多有 2個子結點,樹則無此限制 二叉樹中 結點的子樹 分成左子樹和右子樹,即使某結點只有一棵子樹,也要指明該子樹是左子樹,還是右子樹,就是說 二叉樹是...