目錄
一、知識總覽
二、二叉樹的概念
二叉樹是n個結點的有限集合:
①或者爲空二叉樹,即n = 0;
②或者是由一個根節點和兩個互不相交的被稱爲根的左子樹和右子樹組成。左子樹和右子樹又分別是一棵二叉樹
特點:
①每個結點至多隻有兩顆子樹
②左右子樹不能顛倒(二叉樹是有序樹)
二叉樹是遞歸定義的數據結構
三、二叉樹的五種狀態
四、幾個特殊的二叉樹
1.滿二叉樹
一棵高度爲h,且含有2^h - 1 個結點的二叉樹
特點:
①只有最後一層有葉子結點
②不存在度爲1的結點
③按層序從1開始編號,結點i的左孩子爲2i,右孩子爲2i+1;結點i的父節點爲[i/2]
2.完全二叉樹
當且僅當其每個結點都與高度爲h的滿二叉樹中編號爲1~n的結點一一對應時,稱爲完全二叉樹。
特點
①只有最後兩層可能有葉子結點
②最多隻有一個度爲1的結點
③滿二叉樹③
④i<=[n/2]爲分支結點,i>[n/2]爲葉子結點
注:如果某結點只有一個孩子,那麼一定是左孩子
3.二叉排序樹
一棵二叉樹或者是空二叉樹,或者是具有如下性質的二叉樹:
左子樹上所有結點的關鍵字均小於根結點的關鍵字;
右子樹上所有結點的關鍵字均大於根節點的關鍵字;
左子樹和右子樹又各是一棵二叉排序樹
注:二叉排序樹可用於元素的排序、搜索
4.平衡二叉樹
樹上任一結點的左子樹和右子樹的深度之差不超過1.
注:平衡二叉樹能有更高的搜索效率