二叉樹的相關概念及其遍歷規則

樹的遞歸定義:

樹是n(n>0)個結點的有限集,這個集合滿足下面條件:
      ⑴有且僅有一個結點沒有前驅(父親結點)。該結點稱爲樹的根。
      ⑵除根外,其餘的每一個結點都有且僅有一個前驅;
      ⑶除根外,每個結點都通過唯一的路徑連到根上(否則有環)。

節點的分類

結點一般分成三類

⑴根結點:沒有父親的結點。在樹中有且僅有一個根結點。如節點R
⑵分支結點:除根結點外,有孩子的結點稱爲分支結點。如a,b,c,x,t,d,i
⑶葉結點:沒有孩子的結點稱爲樹葉。如w,h,e,f,s,m,o,n,j,u

度:

⑴結點的度:一個結點的子樹數目稱爲該結點的度。如結點i的度爲3。節點t的度爲2,節點b的度爲1。顯然,全部樹葉的度爲0。
⑵樹的度:全部結點中最大的度稱爲該樹的度(寬度)。上圖中的樹的度爲3。

深度:

樹是分層次的。結點所在的層次是從根算起的。根結點在第一層,根的兒子在第二層,其餘各層依次類推。即某個節點在第k層,則該節點的後件均在第k+1層。在樹中。父結點在同一層的全部結點構成兄弟關係。樹中最大的層次稱爲樹的深度。亦稱高度。上圖中樹的深度爲5。

樹的遍歷:

二叉樹的遍歷(traversing binary tree)是指從根結點出發,按照某種次序依次訪問二叉樹中所有的結點,使得每個結點被訪問依次且僅被訪問一次。下面介紹幾種遍歷及其規則:
前序遍歷:若樹爲空,則空操作返回。否則,先訪問根節點,然後前序遍歷左子樹,再前序遍歷右子樹。

遍歷結果:ABDHIEJCFKG

中序遍歷:若樹爲空,則空操作返回。否則,從根節點開始(注意並不是先訪問根節點),中序遍歷根節點的左子樹,然後是訪問根節點,最後中序遍歷根節點的右子樹。

遍歷結果:HDIBEJAFKCG

後續遍歷:若樹爲空,則空操作返回。否則,從左到右先葉子後節點的方式遍歷訪問左右子樹,最後訪問根節點。

遍歷結果:HIDJEBKFGCA

層序遍歷:若樹爲空,則空操作返回。否則,從樹的第一層,也就是根節點開始訪問,從上到下逐層遍歷,在同一層中,按從左到右的順序結點逐個訪問。

遍歷結果:ABCDEFGHIJK

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