二叉树的基本理论知识
樹的特征
樹是一種數據結構,它是n(n>=0)個節點的有限集。n=0時稱為空樹。n>0時,有限集的元素構成一個具有層次感的數據結構。
區別于線性表一對一的元素關系,樹中的節點是一對多的關系。樹具有以下特點:
?樹的相關概念
樹有許多相關的術語與概念,在學習樹的結構之前,我們要熟悉這些概念:
? 子樹:除了根節點外,每個子節點都可以分為多個不相交的子樹。(圖二)
? 孩子與雙親:若一個結點有子樹,那么該結點稱為子樹根的"雙親",子樹的根是該結點的"孩子"。在圖一中,B、H是A的孩子,A是B、H的雙親。
? 兄弟:具有相同雙親的節點互為兄弟,例如B與H互為兄弟。
? 節點的度:一個節點擁有子樹的數目。例如A的度為2,B的度為1,C的度為3.
? 分支節點:除了葉子節點之外的節點,也即是度不為0的節點。
?
?
?
?
兩種特殊的二叉樹
斜樹
 所有節點都只有左子樹的二叉樹叫做左斜樹,所有節點都只有右子樹的二叉樹叫做右斜樹。左斜樹和右子樹統稱為斜樹。
 斜樹已經退化成線性結構,二叉樹在查找上表現出來優異性能在斜樹得不到體現。
?
?
滿二叉樹
滿二叉樹要滿足兩個條件:
在同樣深度的二叉樹中,滿二叉樹的節點數目是最多的,葉子數也是最多的。
?
?完全二叉樹
完全二叉樹(Complete Binary Tree) :若設二叉樹的深度為h,除第 h 層外,其它各層 (1~h-1) 的結點數都達到最大個數,第 h 層所有的結點都連續集中在最左邊,這就是完全二叉樹。
?
?
?
二叉樹的存儲結構
1. 二叉樹的順序存儲
^代表不存在的結點。
對于右斜樹,順序存儲結構浪費存儲空間
?
2. 二叉鏈表
鏈表每個結點包含一個數據域和兩個指針域:
其中data是數據域,lchild和rchild都是指針域,分別指向左孩子和右孩子。
?
?
轉載于:https://www.cnblogs.com/sunbines/p/9074415.html
總結
以上是生活随笔為你收集整理的二叉树的基本理论知识的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 【Java Web开发学习】Spring
- 下一篇: hdu 5585 判断一个数能否被3整除
