二叉樹 基本概念

2021-07-10 02:07:54 字數 1694 閱讀 2834

1.二叉樹的定義

二叉樹的定義是以遞迴形式給出的:

一棵二叉樹是結點的乙個有限集合,該集合或者為空,或者是由乙個根節點加上兩棵分別稱為左子樹和右子樹的、互不相交的二叉樹組成。

二叉樹有5種基本形態,如圖1所示,任何複雜的二叉樹都是這5種基本形態的復合,其中圖(a)是空二叉樹,圖(b)是單結點的二叉樹,圖(c)是右子樹為空的二叉樹,圖(d)是左子樹為空的二叉樹,圖(e)是左右子樹都不為空的二叉樹。

由於二叉樹區分左右子樹,由n個結點組成的二叉樹共有cn

2n(n

+1) 種。

2.二叉樹的性質

性質 1非空二叉樹的第i層最多有2i

−1個結點。

性質 2高度為k的二叉樹最大節點數為2k

−1個。(k≥

−1)性質 3對任何一顆二叉樹,如果其葉子節點個數為n0

,度為2的非葉子節點個數為n2

,則有n0

=n2+

1 。

定義 1滿二叉樹(full binary tree)

高度為k的滿二叉樹是有2k

−1個結點的二叉樹,因此,在滿二叉樹中,每一層結點都達到了最大個數。除最底層結點的度為0外,其它各層結點的度都為2。

定義 2完全二叉樹(complete binary tree)

如果一棵具有n個結點的高度為k的二叉樹,它的每乙個結點都與高度為k的滿二叉樹中編號為1~n的結點一一對應,則稱這棵樹為完全二叉樹。

性質 4具有n個結點的完全二叉樹的高度為

⌈log2(

n+1)

⌉ 或

⌊log2n

⌋ +1。

性質 5如果將一棵有n個結點的完全二叉樹自頂向下,同一層自左向右連續給節點編號為1,2,3,···,n,然後按此結點編號將樹中各結點順序地存放於乙個一位陣列中,並簡稱編號為i的結點為結點i(1≤

i≤n )。則有以下關係:

3.二叉樹的抽象資料型別

//物件:結點的有限集合。二叉樹是有序樹。 

templete

> class binary ;

1.二叉樹的順序儲存結構用一組位址連續的儲存單元來存放二叉樹的資料元素。先將其按完全二叉樹的節點標號(從1開始),其編號從小到大的順序就是結點存放在連續儲存單元的先後次序(其中#表示空結點)。

優點:已經乙個結點的編號,能夠方便地找到其雙親結點和孩子結點。

缺點:不適合結點的刪除和插入,也就是說不適合結點的動態變化。

2.二叉樹的鏈式儲存結構

二叉樹中每乙個結點用鍊錶中的乙個鏈結點來儲存。其結點結構如下:

lchild

data

rchild

對應的結點型別宣告如下:

struct treenode 

};

二叉樹基本概念

五種形態 1.空二叉樹 2.僅有根節點的二叉樹 3.右子樹為空的二叉樹 4.左子樹為空的二叉樹 5.左右子樹都是非空的二叉樹 二叉樹的術語 節點 度 葉子 雙親 兄弟 孩子 子孫 有序樹 無序樹 二叉樹的五種性質 1.二叉樹的第i層至多又2 i 1 個結點 2.深度為k的二叉樹至多有2 k 1個結點...

二叉樹的基本概念

二叉樹的概念 一棵二叉樹是結點的乙個有限集合,該集合或者為空,或者是由乙個根節 點加上兩棵分別稱為左子樹和右子樹的二叉樹組成 特點 因此 二叉樹是通過上述5中形式的組合或巢狀而形成 滿二叉樹 完全二叉樹 二叉樹的性質 二叉樹的儲存結構 二叉樹主要有順序儲存和鏈式儲存結構 順序儲存結構 對於一棵完全二...

樹與二叉樹基本概念

1.樹屬於邏輯非線性結構。2.如果乙個節點有後繼節點,那麼該節點可以有n多個後繼節點 如果乙個節點有前驅節點,那麼該樹只有乙個前驅節點 只有根節點沒有前驅節點,其他節點都有前驅節點 一棵沒有任何節點的樹稱為空樹。3.樹中的節點存在三種 根節點 沒有前驅節點 葉子節點 沒有葉子節點 非葉子節點 可以包...