定義
二叉樹是一個連通的無環(huán)圖珍手,并且每一個頂點的度不大于3。有根二叉樹還要滿足根結(jié)點的度不大于2钥飞。有了根結(jié)點之后,每個頂點定義了唯一的父結(jié)點衫嵌,和最多2個子結(jié)點读宙。然而,沒有足夠的信息來區(qū)分左結(jié)點和右結(jié)點楔绞。如果不考慮連通性结闸,允許圖中有多個連通分量,這樣的結(jié)構(gòu)叫做森林酒朵。
基本概念
二叉樹是遞歸定義的桦锄,其結(jié)點有左右子樹之分,邏輯上二叉樹有五種基本形態(tài):
(1)空二叉樹——如圖(a)蔫耽;
(2)只有一個根結(jié)點的二叉樹——如圖(b)结耀;
(3)只有左子樹——如圖(c);
(4)只有右子樹——如圖(d)匙铡;
(5)完全二叉樹——如圖(e)图甜。
注意:盡管二叉樹與樹有許多相似之處,但二叉樹不是樹的特殊情形
類型
(1)完全二叉樹——若設二叉樹的高度為h鳖眼,除第 h 層外黑毅,其它各層 (1~h-1) 的結(jié)點數(shù)都達到最大個數(shù),第h層有葉子結(jié)點钦讳,并且葉子結(jié)點都是從左到右依次排布矿瘦,這就是完全二叉樹枕面。
(2)滿二叉樹——除了葉結(jié)點外每一個結(jié)點都有左右子葉且葉子結(jié)點都處在最底層的二叉樹。
(3)平衡二叉樹——平衡二叉樹又被稱為AVL樹(區(qū)別于AVL算法)匪凡,它是一棵二叉排序樹膊畴,且具有以下性質(zhì):它是一棵空樹或它的左右兩個子樹的高度差的絕對值不超過1掘猿,并且左右兩個子樹都是一棵平衡二叉樹病游。
辨析
二叉樹不是樹的一種特殊情形,盡管其與樹有許多相似之處稠通,但樹和二叉樹有兩個主要差別:
- 樹中結(jié)點的最大度數(shù)沒有限制衬衬,而二叉樹結(jié)點的最大度數(shù)為2;
- 樹的結(jié)點無左改橘、右之分滋尉,而二叉樹的結(jié)點有左、右之分飞主。
術語:
樹的結(jié)點(node):包含一個數(shù)據(jù)元素及若干指向子樹的分支狮惜;
孩子結(jié)點(child node):結(jié)點的子樹的根稱為該結(jié)點的孩子;
雙親結(jié)點:B 結(jié)點是A 結(jié)點的孩子碌识,則A結(jié)點是B 結(jié)點的雙親碾篡;
兄弟結(jié)點:同一雙親的孩子結(jié)點; 堂兄結(jié)點:同一層上結(jié)點筏餐;
祖先結(jié)點: 從根到該結(jié)點的所經(jīng)分支上的所有結(jié)點子孫結(jié)點:以某結(jié)點為根的子樹中任一結(jié)點都稱為該結(jié)點的子孫
結(jié)點層:根結(jié)點的層定義為1开泽;根的孩子為第二層結(jié)點,依此類推魁瞪;
樹的深度:樹中最大的結(jié)點層
結(jié)點的度:結(jié)點子樹的個數(shù)
樹的度: 樹中最大的結(jié)點度穆律。
葉子結(jié)點:也叫終端結(jié)點,是度為 0 的結(jié)點导俘;
分枝結(jié)點:度不為0的結(jié)點峦耘;
有序樹:子樹有序的樹,如:家族樹旅薄;
無序樹:不考慮子樹的順序辅髓;