数据结构1800题-错题集-第六章
接著搞數據結構錯題集(⊙o⊙)…
序號標題為解答,引用為題目和答案
葉子結點數=16-4-2-1-1(總節點數-度不為0的個數)=8
設樹 T 的度為 4,其中度為 1,2,3 和 4 的結點個數分別為 4,2,1,1 則 T 中的葉子
數為 ( 8 )
第一個顆樹的根節點作為二叉樹的根節點、接著下一顆樹的根節點作為,第一棵樹的右子樹
因為除去右子樹過后 剩下的就是 左子樹和根節點 (即為第一個子樹)
設森林 F 對應的二叉樹為 B,它有 m 個結點, B 的根為 p,p 的右子樹結點個數為 n,森林 F
中第一棵樹的結點個數是( A )
A.m-n B.m-n-1 C.n+1 D.條件不足,無法確定
推導公式如下:
n 為 結點的總數
n0 為 度為0的結點總數
依次類推
①從邊的角度考慮:n - 1 (總共有這么多邊) = 2 * n2 + 1 * n1 (想想 每個結點指向的邊 就插在 一個結點頭上)
②從結點的角度考慮:n = n0 + n1 + n2
結合①和②就可以退出公式來了
具有 10 個葉結點的二叉樹中有( B )個度為 2 的結點
2 ^(k-1)-1< n ≤2^k-1
所以有:k-1≤ log2^(n+1)<k
利用二叉鏈表存儲樹,則根結點的右指針是( C )。【青島大學 2001 五、 5 (2 分)】
A.指向最左孩子 B.指向最右孩子 C.空 D.非空
對二叉樹的結點從 1 開始進行連續編號, 要求每個結點的編號大于其左、 右孩子的編號,同一結點的左右孩子中,其左孩子的編號小于其右孩子的編號,可采用 ( C )次序的遍歷實現編號。【北京理工大學 2000 一、 4 (2 分)】
A.先序 B. 中序 C. 后序 D. 從根開始按層次遍歷
雙親表示法 取一塊連續的內存空間,在存儲每個結點的同時,各自都附加一個記錄其父結點位置的變量。
孩子表示法 將樹中的每個結點的孩子結點排列成一個線性表,用鏈表存儲起來。對于含有 n 個結點的樹來說,就會有 n 個單鏈表,將 n 個單鏈表的頭指針存儲在一個線性表中,這樣的表示方法就是孩子表示法。
兄弟孩子表示法 使用鏈式存儲結構存儲普通樹。鏈表中每個結點由 3 部分組成,其中孩子指針域,表示指向當前結點的第一個孩子結點,兄弟結點表示指向當前結點的下一個兄弟結點。
在二叉樹結點的先序序列,中序序列和后序序列中,所有葉子結點的先后順序( B )
A.都不相同 B.完全相同 C.先序和中序相同,而與后序不同
D.中序和后序相同,而與先序不同
某二叉樹的前序序列和后序序列正好相反,則該二叉樹一定是(高度等于其結點數)的二叉樹
n個結點的線索二叉樹上含有的線索數為( n + 1)
當一棵有 n 個結點的二叉樹按層次從上到下,同層次從左到右將數據存放在一維數組
A[l…n] 中時,數組中第 i 個結點的左孩子為( D )【南京理工大學 1999 一、 18(2 分)】
A.A2i B. A[2i+1](2i+1=< n) C.A[i/2] D.無法確定
u1.每個結點的度都不大于2。
u2.每個結點的孩子結點次序不能任意顛倒。
對一棵二叉樹進行層次遍歷時,應借助于一個棧
二叉樹的兩種存儲方式:
①一維數組:即用一位數組存儲二叉樹中的結點。采用層次遍歷,從上至下從左到右依次存儲,根節點存儲在下標為1的位置,對于任意位置i的結點,其左子樹位于2i,右子樹位于2i+1
②鏈式存儲:用鏈表表示二叉樹。每個結點存儲自身的數據以及兩個分別指向左孩子和右孩子結點的指針
中序遍歷一棵二叉排序樹的結點就可得到排好序的結點序列
二叉排序樹的定義:二叉排序樹或者是一棵空樹,或者是一棵具有如下性質的二叉樹:
⑴ 若它的左子樹非空,則左子樹上所有結點的值均小于根結點的值;
⑵ 若它的右子樹非空,則右子樹上所有結點的值均大于根結點的值;
⑶ 左、右子樹本身又各是一棵二叉排序樹。
順序存儲一般只適用于完全二叉樹,就是用一維數組存儲二叉樹中的結點
講樹轉為二叉樹
參考牛客網 網友提供圖解
線索化的規則是:左線索指針指向當前結點在中序遍歷序列中的前驅結點,右線索指針指向后繼結點。因此我們需要一個指針p指向當前正在訪問的結點,pre指向p的前驅結點,p的左線索指針如果存在的話直接指向pre(也就是前驅結點),pre的右線索如果存在則指向p(也就是直接后繼)。
非空二叉樹中序遍歷(無頭結點的情況)線索化后,第一個結點無前驅,最后一個結點無后繼
樹的帶權路徑長度(Weighted Path Length of Tree):定義為樹中所有葉結點的帶權路徑長度之和。
結點的帶權路徑長度:結點到樹根之間的路徑長度與該結點上權的乘積。
樹在計算機內的表示方式有:雙親表示法、孩子鏈表法、孩子兄弟表示法
二叉樹中某一結點左子樹的深度減去右子樹的深度稱該為該結點的平衡因子
一顆右n個結點的滿二叉樹有0個度為1的結點、有**( n - 1 )/ 2 個分支和(n + 1)/ 2**個葉子,該二叉樹的深度為 log2^n(取下界) + 1
哈夫曼樹構造方法:
①首先從備選數中選取結點中最小的兩個數,并計算兩個數之和
②生成的新結點放入被選數中,繼續重復①的步驟,直到數都選完
有一份電文中共使用 6 個字符 :a,b,c,d,e,f,它們的出現頻率依次為 2,3,4,7,8,9,試構造一
棵哈夫曼樹, 則其加權路徑長度 WPL 為80,字符 c 的編碼是 001(不唯一)
總結
以上是生活随笔為你收集整理的数据结构1800题-错题集-第六章的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: idea 常用快捷键(windows键盘
- 下一篇: 安装netframewo酷比魔方平板电脑