數據結構——二叉樹基礎

 

樹的特徵

樹是由n(n>=1)個有限結點組成一個具有層次關係的集合。

把它叫做“樹”是因爲它看起來像一棵倒掛的樹,也就是說它是根朝上,而葉朝下的。 

 

樹?非樹?

 

 

樹的概念

樹中的每個元素都叫做節點,用來連線相鄰節點之間的關係,叫作“父子關係”

 A 節點就是 B 節點的父節點,B 節點是 A 節點的子節點。

B、C、D 這三個節點的父節點是同一個節點,所以它們之間互稱爲兄弟節點。

我們把沒有父節點的節點叫作根節點,也就是圖中的節點 E。

我們把沒有子節點的節點叫作葉子節點或者葉節點,比如圖中的 G、H、I、J、K、L 都是葉子節點。

一個節點含有的子樹的個數稱爲該節點的度,A的度爲3。

最大的節點的度稱爲樹的度,如圖,A是樹中度最大的節點,樹的度爲3。

 

除此之外,關於樹還有三個概念:高度(Height)、深度(Depth)、層(Level)。

 

高度其實就是從下往上去度量,而深度是從上往下去度量,層數和深度類似,不過層數的計數起點是從1開始。

 

 

二叉樹(Binary Tree)

 

樹有多種多樣的結構,最常用的基本上就是二叉樹。

二叉樹,顧名思義,每個節點最多有兩個“叉”,也就是兩個子節點,分別是左子節點和右子節點,且左右節點不能顛倒。

即二叉樹不存在度大於2的節點。

除二叉樹之外,還有四叉樹、八叉樹等。

二叉樹並不要求每個節點都有兩個子節點,有的節點只有左子節點,有的節點只有右子節點。

 

完全二叉樹

完全二叉樹是葉子節點都在最底下兩層,最後一層的葉子節點都靠左排列,並且除了最後一層,其他層節點個數都要達到最大。

(這裏最後一層葉子結點都靠左排列的意思並非是最後一層的葉子結點都是左子結點,是從左到右連續,無空缺,都排在左邊)

換一種說法,完全二叉樹可以看做是滿二叉樹在最後一層從右往左砍掉一些節點。

滿二叉樹

滿二叉樹是葉子節點全部在底層,而且除了葉子節點之外,每個節點都有左右兩個節點。

也可以說,如果一個二叉樹的層數爲k,且結點總數是(2^k) -1 ,則它就是滿二叉樹。

滿二叉樹是一種特殊的完全二叉樹。

 

如圖,2就是滿二叉樹,3是完全二叉樹。

 

滿二叉樹非常好辨認,完全二叉樹就要注意。

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章