二叉樹 填空題

2021-09-30 15:13:09 字數 1175 閱讀 8206

填空:

1. 由3個結點所構成的二叉樹有(5)種形態。

2. 一棵深度為6的滿二叉樹有 ( 31 ) 個分支結點和( 32 ) 個葉子。

注:滿二叉樹沒有度為1的結點,所以分支結點數就是二度結點數。

3. 一棵具有257個結點的完全二叉樹,它的深度為 ( 9 )。

注:用[log2(n)]+1=9

4. 設一棵完全二叉樹有700個結點,則共有 350 個葉子結點。

答:最快方法:用葉子數=[n/2]=350

5. 設一棵完全二叉樹具有1000個結點,則此完全二叉樹有 (500 ) 個葉子結點,有( 499 ) 個度為2的結點,

有 ( 1 ) 個結點只有非空左子樹,有( 0 ) 個結點只有非空右子樹。

答:最快方法:用葉子數=[n/2]=500 ,n2=n0-1=499。 另外,最後一結點為2i屬於左葉子,右葉子是空的,所以有1個非空左子樹。完全二叉樹的特點決定不可能有左空右不空的情況,所以非空右子樹數=0.

6. 一棵含有n個結點的k叉樹,可能達到的最大深度為 ( n ) ,最小深度為( 2 ) 。

答:當k=1(單叉樹)時應該最深,深度=n(層);當k=n-1(n-1叉樹)時應該最淺,深度=2(層),但不包括n=0或1時的特例情況。)

7. 二叉樹的基本組成部分是:根(n)、左子樹(l)和右子樹(r)。因而二叉樹的遍歷次序有六種。最常用的是三種:前序法(即按n l r次序),

後序法(即按l r n次序)和中序法(也稱對稱序法,即按l n r次序)。這三種方法相互之間有關聯。

若已知一棵二叉樹的前序序列是befcgdh,中序序列是febgchd,則它的後序序列必是( f e g h d c b) 。

解:法1:先由已知條件畫圖,再後序遍歷得到結果;

法2:不畫圖也能快速得出後序序列,只要找到根的位置特徵。由前序先確定root,由中序先確定左子樹。例如,前序遍歷befcgdh中,根結點在最前面,是b;則後序遍歷中b一定在最後面。

法3:遞迴計算。如b在前序序列中第一,中序中在中間(可知左右子樹上有哪些元素),則在後序中必為最後。如法對b的左右子樹同樣處理,則問題得解。

8.中序遍歷的遞迴演算法平均空間複雜度為 o(n) 。

9. 用5個權值構造的哈夫曼(huffman)樹的帶權路徑長度是( 33 ) 。

解:先構造哈夫曼樹,得到各葉子的路徑長度之後便可求出wpl=(4+5+3)×2+(1+2)×3=33

(二叉樹提高題)還原二叉樹

給定一棵二叉樹的先序遍歷序列和中序遍歷序列,要求計算該二叉樹的高度。輸入格式 輸入首先給出正整數n 50 為樹中結點總數。下面兩行先後給出先序和中序遍歷序列,均是長度為n的不包含重複英文本母 區別大小寫 的字串。輸出格式 輸出為乙個整數,即該二叉樹的高度。輸入樣例 9 abdfghiec fdhgi...

(二叉樹基礎題)求二叉樹高度

本題要求給定二叉樹的高度。函式介面定義 int getheight bintree bt 其中bintree結構定義如下 typedef struct tnode position typedef position bintree struct tnode 要求函式返回給定二叉樹bt的高度值。裁判測...

二叉樹 27題 二叉樹的映象

請完成乙個函式,輸入乙個二叉樹,該函式輸出它的映象。例如輸入 4 2 7 1 3 6 9 映象輸出 4 7 2 9 6 3 1 示例1 輸入 root 4,2,7,1,3,6,9 輸出 4,7,2,9,6,3,1 限制 0 節點個數 1000根據二叉樹映象的定義,考慮遞迴遍歷 dfs 二叉樹,交換每...