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