樹(tree)是一種簡單的非線性結構。所有資料元素之間有明顯的層次特性。
根節點:沒有父節點的節點。
葉子節點:沒有子節點的節點。
節點的度:乙個節點所擁有的後件個數稱為該節點的讀。
樹的度:所有節點中最大的度。
樹的深度:樹的最大層次。
二叉樹是一種每乙個節點最多有兩顆子樹的樹。
估計這一特性,能夠計算二叉樹的某一層,最多有多少個節點
假設,每一層都達到最大值,然後根據如下等比數列求和公式求得。
例題:在二叉樹中共有37個節點,度為1的節點是度為2的節點2倍,求葉子節點個數?
解析:--------度數-----------個數-----------
---------0---------------x+1-----------
---------1---------------2x----------
---------2-----------------x--------
====>x=9;
====>度為0的節點數為10
除了葉子節點,每個節點都有兩個子節點。即k層上有
2^(k-1)個節點,若深度為m,則節點數為2^m-1
完全二叉樹:除了最後一層外,每一層上的節點數,均達到了最大值;在最後一層上只缺少右邊若干個節點。
遍歷順序是根---->左----->右
遍歷結果:abdecf
遍歷順序是左---->根----->右
遍歷結果:dbeafc
遍歷順序是左---->右---->根
遍歷結果:debfca
例題:1.哈夫曼樹中共有99個結點,則該樹中有___個葉子結點;若採用二叉鍊錶作為儲存結構,則該樹中有___個空指標域
解析:huffman 樹只有葉子和度為2的結點,因為n0 = n2 + 1,所以n0 + n0-1= 99,所以n0 = 50,也就是說是50個葉子,用二叉鍊錶儲存時每個葉子有2個空指標域,自然二叉鍊錶確實是有100個空指標域
二叉樹通常採用鏈式儲存結構。每個儲存節點,有兩個指標域,故二叉樹的鏈式儲存結構又被稱為二叉鍊錶。將二叉樹按照相應的遍歷方式遍歷後,採用二叉鍊錶進行儲存。
1. 求二叉樹中的節點個數
2. 求二叉樹的深度
3. 前序遍歷,中序遍歷,後序遍歷
4.分層遍歷二叉樹(按層次從上往下,從左往右)
5. 將二叉查詢樹變為有序的雙向鍊錶
6. 求二叉樹第k層的節點個數
7. 求二叉樹中葉子節點的個數
8. 判斷兩棵二叉樹是否結構相同
9. 判斷二叉樹是不是平衡二叉樹
10. 求二叉樹的映象
11. 求二叉樹中兩個節點的最低公共祖先節點
12. 求二叉樹中節點的最大距離
13. 由前序遍歷序列和中序遍歷序列重建二叉樹
14.判斷二叉樹是不是完全二叉樹
--------------2016-9-10-------------
下列關鍵字序列為堆的是()?
解析:我們所說的堆一般指二叉堆。二叉堆是完全二叉樹或者是近似完全二叉樹。
二叉堆滿足二個特性:
1.父結點的鍵值總是大於或等於(小於或等於)任何乙個子節點的鍵值。
2.每個結點的左子樹和右子樹都是乙個二叉堆(都是最大堆或最小堆)。
它的左右子結點下標分別為2 * i + 1和2 * i + 2
故答案:a
--------------後續會繼續新增-------------
C C 中有關記憶體問題的彙總
型別 32位環境下所佔位元組數 64位環境下所佔位元組數 char11 short int22 int4 4long int48 long long int88 float44 double88 char 44 int 44 特別地,null占用4位元組。其在記憶體中分配的位置圖如下。1 堆 hea...
筆試題中的必勝策略
比如,題目是這樣的 現在有兩堆石子,小今與小條玩遊戲,2個人都足夠聰明,兩個人規定 每次每人只能從其中一堆中取走1個或2個或3個石子,最後將石子全部取完的人勝利.現在兩堆石子的個數為8和9,請問如何安排才能讓小今必勝?答案是 讓小今先取。其實這裡是有規律可循的,可歸結為 取餘制勝 詳解如下 一 取餘...
C語言筆試題中的「坑」
其實這話說的不對,應該說不只是c語言,恐怕是面試題總會有那麼一些坑等著我們踩,今天,就羅列了一些看似簡單,卻很容易中招的面試題 1 以下程式的執行結果為。inlcude define n 2 define m n 1 define num m 1 m 2 main a 5b 6c 8d 9 嘿嘿,當...