————————————本文旨在討論與學習計算機知識,歡迎交流————————————
? ? ? ? 上一章,我們講解了樹結構的綜述導論,那么,現在我們來深入了解一下樹結構中最常用研究的結構——二叉樹結構(上一章的擴展——孩子兄弟表示法就是利用的二叉樹的原理)。
以上是關于普通二叉樹的基本概念,我們可以結合上一章樹的概念記憶。特別的,我們需要注意:二叉樹是度不超過二的樹,其子樹也是二叉樹。
下面,我們來了解一下有關二叉樹的兩個重要概念:滿二叉樹與完全二叉樹。
1、滿二叉樹
? ? ? ? 滿二叉樹是指除了葉子結點外的每一個節點的度都是二且深度相同的樹。
2、完全二叉樹
? ? ? ? 完全二叉樹是指度不為二的節點只存在與倒數二、三行且葉子結點只存在于倒數一、二行的樹。
介紹完滿二叉樹與完全二叉樹的基本概念之后,我們下面要剖析它們的重要性質:
性質1:在二叉樹的第i層上的結點最多為2 個。(i ≥ 1)
性質2:深度為k的二叉樹至多有2 -1個結點。(i ≥ 1)?
性質3:在一棵二叉樹中,葉結點的數目比度為2的結點數目多一個。
? ? ? ? ? ? ?原理:
??? ? ? ??????????
? ? ? ? ? ? ? ? 加的1為根節點,其解釋為:度為1的節點*1+度為2的節點*2+根節點。
性質4:
性質5:如果有一棵n個結點的完全二叉樹,其結點編號按照層次序(從上到下,從左到右),則除根結點外,滿足[i/2 , i, 2i, 2i+1](父,自身,左孩子,右孩子)的規則。
二叉樹的存儲:
????????通常,我們摒棄順序存儲(除了少量特殊的二叉樹),因為這種存儲方式非常浪費空間,我們更多使用鏈式存儲來存儲數據。而對于樹,鏈式二叉樹我們也有樹頭,樹頭作為起點更新和查找樹上元素,不過當前我們仍不能自由快速的查詢元素,直到我們學到二叉搜索樹的時候我們會再次介紹樹的搜索與遍歷操作。
希望能對你有所幫助!