滿二叉樹和完全二叉樹

2022-05-04 06:03:09 字數 1783 閱讀 1276

二叉樹分類很多,其中滿二叉樹和完全二叉樹比較特殊,因為這兩種二叉樹效率很高,這裡記錄幾條相關性質。

首先是滿二叉樹:從形象上來說滿二叉樹是乙個絕對的三角形,也就是說它的最後一層全部是葉子節點,其餘各層全部是非葉子節點,如果用數學公式表示那麼其節點數n=2^k-1其中k表示深度,也就是層數。也就是說滿二叉樹的節點數是一系列固定的數,比如說,1,3,7,15...如果節點數不是這個序列中的數,那麼他肯定不是滿二叉樹,當然了,反之,是不成立的。

由於它的節點數和形狀固定,我們可以發現很多其數學公式性質。

首先是節點數和深度的關係n=2^k-1

第二是第i層上的節點數為2^(i-1)

第三是給所有的節點編號(從1號開始而不是從零號開始)那沒對於乙個編號為i的節點我們可以根據i的大小,判斷出他是左節點還是右節點,父節點是誰,子節點是誰。比如我們給乙個編號13的節點,那麼他是基數所以他是右節點,因為節點的左右變化和資料的基偶性是同步變化的。他的父節點是13/2=6(是從1好開始的)他的左子節點是13*2=26右子節點是13*2+1=27同理還可以求他的兄弟節點,父節點的父節點,

總而言這在滿二叉樹中只要有了乙個節點的編號那麼他在整個二叉樹中的位置就確定了,正是由於這個原因,我們更傾向於使用順序結構而不是鏈式結構來儲存滿二叉樹。

然而由於滿二叉樹的節點數必須是乙個確定的數,而非任意數,他的使用受到了某些限制,為了打破另乙個限制,我們定義一種特殊的滿二叉樹——完全二叉樹。

完全二叉樹的節點個數是任意的,從形式上來說他是乙個可能有缺失的三角形,但所缺部分肯定是右下角的某個連續部分。這樣說不完整,更準確來說,我們可以說他和滿二叉樹的區別是,他的最後一行可能不是完整的,但絕對是右方的連續部分缺失。可能聽起來有點亂,用數學公式講,對於k層的完全二叉樹,其節點數的範圍是2^(k-1)-1;

一棵深度為k且有2的k次方減1個結點的二叉樹是滿二叉樹。

深度為k的,有n個結點的二叉樹,當且僅當其每乙個結點都與深度為k的滿二叉樹中編號從1至n的結點一一對應時,稱為完全二叉樹。

1                                1

/ \ / \

1 1 1 1

/ \ / \ / \

1 1 1 1 1 1

滿二叉樹                              完全二叉樹
二叉樹

是n(n>=0)個結點的有限集合,它或者是空樹(n=0),或者是由乙個根結點及兩顆互不相交的、分別稱為左子樹和右子樹的二叉樹所組成。

滿二叉樹:

一顆深度為k且有2^k-1個結點的二叉樹稱為滿二叉樹。

除葉子結點外的所有結點均有兩個子結點。節點數達到最大值。所有葉子結點必須在同一層上。

完全二叉樹:

若設二叉樹的深度為h,除第h 層外,其它各層 (1~h-1) 的結點數都達到最大個數,第 h 層所有的結點都連續集中在最左邊,這就是完全二叉樹。

二叉樹 滿二叉樹和完全二叉樹

二叉樹是一種很重要的非線性資料結構,它是樹結構的一種重要的型別 它不是樹結構的特殊情況 其特徵是每個節點最多有兩個子樹。二叉樹的特點 二叉樹每個結點最多有 2個子結點,樹則無此限制 二叉樹中 結點的子樹 分成左子樹和右子樹,即使某結點只有一棵子樹,也要指明該子樹是左子樹,還是右子樹,就是說 二叉樹是...

二叉樹,完全二叉樹,滿二叉樹

二叉樹 是n n 0 個結點的有限集合,它或者是空樹 n 0 或者是由乙個根結點及兩顆互不相交的 分別稱為左子樹和右子樹的二叉樹所組成。滿二叉樹 一顆深度為k且有2 k 1個結點的二叉樹稱為滿二叉樹。說明 除葉子結點外的所有結點均有兩個子結點。所有葉子結點必須在同一層上。完全二叉樹 若設二叉樹的深度...

滿二叉樹和完全二叉樹

滿二叉樹是指這樣的一種二叉樹 除最後一層外,每一層上的所有結點都有兩個子結點。在滿二叉樹中,每一層上的結點數都達到最大值,即在滿二叉樹的第k層上有2k 1個結點,且深度為m的滿二叉樹有2m 1個結點。完全二叉樹是指這樣的二叉樹 除最後一層外,每一層上的結點數均達到最大值 在最後一層上只缺少右邊的若干...