二叉樹課后習題解析


# 二叉樹課后題P154

## s1

 二叉樹中度為0的結點數為30,度為1的節點數為20,總結點數?

    設二叉樹度為0的結點數為N0
    度為1的結點數為N1
    度為2的結點數位N2
    結點總數為T
    所以有

    T = N0 + N1 + N2   (1) (依據結點)
    T = N1 + 2*N2 + 1  (2)(依據分支)
    (每個N2節點有2個分支,每個N1結點有1個分支,前面相加為分支數,求結點數還要加上根結點)

    (2)-(1)得N2 = N0 - 1
    解出N0、N1、N2即可

## s2

設一棵完全二叉樹有128個結點,則該完全二叉樹的深度為____, 有____個葉子結點

    深度為8.
    因為2^7 - 1 < 128 < 2^8 - 1

    有64個葉子結點.
    因為 (128+1)/ 2 = 64 (按整型計算)

### 知識點回顧

    高度為h的二叉樹中結點最多為2^k-1個

## s3

設有n個結點的完全二叉樹,如果按照從自上到下,從左到右從1開始順序編號,則第i個結點的雙親結點編號為___, 右孩子結點的編號為____

    i/2 2*i+1

     1
    2 3
    4 5 6 7

## s4

設二叉樹中結點的兩個指針域分別為lchild和rchild,則判斷指針變量p所指向的結點為葉子結點的條件是________.

    p->lchild==NULL&&p->rchild==NULL ??

## s5

設一棵完全二叉樹的順序存儲結構中存儲數據元素為ABCDEF,則該二叉樹的后序遍歷序列為____,中序遍歷序列為______

    DBEAFC
    DEBFCA

## s6

設一棵二叉樹的前序序列為 ABC ,則有 1_ 種不同的二叉樹可以得到這種序列

    5
![1](./assets/ABC 二叉樹.png)

## s7

設二叉樹的先序遍歷序列和后序遍歷序列正好相反,則該二叉樹滿足的條件是

    高度等於其結點數

    先序遍歷:根左右;后續遍歷:左右根
    要滿足題意,則只有
    根左<----->左根
    根右<--------->右根
    所以高度一定等於節點數

## s8

假設用於通信的電文僅由8個字母組成,字母在電文中出現的頻率分別為:

0.07,0.19,0.02,0.06,0.32,0.03,0.21,0.10

請為這8個字母設計哈夫曼編碼,要求畫出哈夫曼樹。

![樹的高度](./assets/樹的高度.PNG)

    編碼:0.19:00  0.21:01   0.02:10000  0.03:10001  0.06:1001  0.07:1010   0.10:1011   0.32:11

## s9

設哈夫曼樹中共有n個結點,則該哈夫曼樹中有幾個度數為1的結點

    0個

## s10

含有n個結點的二叉樹采用二叉鏈表存儲時,空指針域的個數為(  )

    n個結點的二叉鏈表中,有2n個鏈域,
    每一條非空鏈域對應一條樹枝,
    而樹支的個數為n-1,
    因此,空節點個數為2n-(n-1)=n+1
![樹的高度](./assets/有多少個空指針域.PNG)




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM