二叉樹是n(n≥0)個節點的有限集合,它或者是空樹(n=0),或者是有乙個根節點及兩顆不相交的且分別稱為左、右子樹的二叉樹所組成。可見,二叉樹同樣具有遞迴性質。
特別需要注意的是,儘管樹和二叉樹的概念之間有許多聯絡,但它們是兩個不同的概念,樹和二叉樹之間最主要的區別是:二叉樹結點的子樹要區分左子樹和右子樹,即使在節點只有乙個子樹的情況下,也要明確指出該子樹是左子樹還是右子樹。另外,二叉樹結點最大度為2,二樹中不限制節點的度數。
(1)二叉樹第i層(i≥1)上至多有
(2)高度為k的二叉樹之多有
(3)對於任一顆二叉樹,若其終端的節點數為
(4)具有n個節點的完全二叉樹的深度為
1)二叉樹的順序儲存結構
用一組位址連續的儲存單元儲存二叉樹中的節點,必須把節點排成乙個適當的線性序列,並且節點在這個序列中的相互位置能反映出節點之間的邏輯關係。
2)二叉樹的鏈式儲存結構
由於二叉樹的節點中包含有資料元素、左子樹的根、右子樹的根及雙親等資訊,因此可以用三叉鍊錶或二叉鍊錶(即乙個節點含有三個指標或兩個指標)來儲存二叉樹,鍊錶的頭指標指向二叉樹的根節點。
遍歷二叉樹的方法分別有先序遍歷、中序遍歷、後序遍歷。
先序遍歷:先遍歷根節點,然後是左子樹,最後是右子樹;根節點->左子樹->右子樹
中序遍歷:先遍歷左子樹,然後是根節點、最後是右子樹;左子樹->根節點->右子樹
後序遍歷:先遍歷左子樹,然後是右子樹,最後是根節點;左子樹->右子樹->根節點
先序遍歷:abdfegc
中序遍歷:dfbgeac
後序遍歷:fdgebca
二叉樹的三種遍歷
重新又看了一遍二叉樹 binary tree 發現很多東西自己還沒有弄明白,原來三種遍歷方式還不是自己想象中的那樣 前序遍歷 preorder 是先輸出自己,然後左,最後右。中序遍歷 inorder 是先左,再輸出自己,最後右。後序遍歷 postorder 是先左,再右,最後輸出自己。所謂的xx遍歷...
二叉樹的三種遍歷
在這裡說一下二叉樹的三種遍歷 前序,中序,後序 正文 前序遍歷 是指先從根開始,再依次找尋左子結點 右子結點。學習時的經驗就是 看圖學習 第乙份圖 這樣看來 1.先找最基本的根結點 詞窮 這裡是a。2.接著找以a為根結點的左子結點,這裡是b。3.而以b為根結點也會出現左右結點,這就又有了乙個左結點d...
二叉樹的三種遍歷
1.先序遍歷 按照根節點 左子樹 右子樹的順序訪問二叉樹 先序遍歷 1 訪問根節點 2 採用先序遞迴遍歷左子樹 3 採用先序遞迴遍歷右子樹 注 每個節點的分支都遵循上述的訪問順序,體現 遞迴呼叫 先序遍歷結果 a bdfe cghi 思維過程 1 先訪問根節點a,2 a分為左右兩個子樹,因為是遞迴呼...