二叉排序樹的構造 && 二叉樹的先序、中序、后序遍歷 && 樹的括號表示規則


二叉排序樹的中序遍歷就是按照關鍵字的從小到大順序輸出(先序和后序可沒有這個順序)

 

一、以序列 6 8 5 7 9 3構建二叉排序樹:

 

二叉排序樹就是中序遍歷之后是有序的;

構造二叉排序樹步驟如下;

插入法構造:

 

 2、

 

 

 

 

 

 

以此類推 將要插入的結點先跟根結點比較, 比根結點大進入右子樹 反之進入 左子樹;

在跟進入的 左子樹(右子樹)的結點比較 方法同上;

直到沒有結點了  在插入;  你給的排序最后的二叉排序樹如下;

 

 

 中序遍歷結果是  :  3 4 5 6 7 8 9 ;

 先序遍歷結果是 : 6 4 3 5 8 7 9 ;

建立二叉排序樹后進行查找,則等概率情況下查找成功的平均查找長度為(1+2*2+4*3)/7=17/7

例題:

已知長度為9的表16、3、7、11、9、26、18、14、15,建立二叉排序樹后進行查找,則等概率情況下查找成功的平均查找長度為(31/9)

本題考查二叉排序樹的查找。
二叉排序樹又稱為二叉查找樹,其定義為:二叉排序樹或者是一棵空樹,或者是具有如下性質(BST性質)的二叉樹:
(1)若它的左子樹非空,則左子樹上所有結點的值均小於根結點;
(2)若它的右子樹非空,則右子樹上所有結點的值均大於根結點;
(3)左、右子樹本身又各是一棵二叉排序樹。
在做該題時,首先將表中的9個元素放進二叉樹中構成二叉排序樹,在構造二叉排序樹時,我們將表中的元素依次按照構造二叉排序樹的規則往樹中添加元素,在獲得二叉排序樹后,計算平均長度就變得簡單了,為(1+2+2+3+3+4+5+5+6)/9=31/9。

 

二、二叉樹的先序、中序、后序遍歷

前序遍歷:根節點->左子樹->右子樹(根->左->右)

中序遍歷:左子樹->根節點->右子樹(左->根->右)

后序遍歷:左子樹->右子樹->根節點(左->右->根)

 

舉個例子

 

 

前序遍歷:根結點 —> 左子樹 —> 右子樹(先遍歷根節點,然后左右)

這棵樹的前序遍歷為:ABDEGHCF

中序遍歷:左子樹—> 根結點 —> 右子樹(在中間遍歷根節點)

這棵樹的中序遍歷為:DBGEHACF

后序遍歷:左子樹 —> 右子樹 —> 根結點(最后遍歷根節點)

這棵樹的后序遍歷為:DGHEBFCA
 
 
三、樹的括號表示規則

(1)若樹T為空樹,則其括號表示為空

(2)若樹T只包含一個結點,則其括號表示即為該結點本身

(3)若樹T由根結點A和它的m棵子樹T1,T2,...,Tm構成,則其括號表示為:A(T1的括號表示,T2的括號表示,... ,Tm的括號表示)

其中,子樹的括號表示同樣應該遵循以上規則

 

實例:

 

 

 
四、知道先序中序求后序
 

 

 

 

 


免責聲明!

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



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