一、二叉樹的定義
二叉樹是一種特殊的樹形結構,其特點是每個結點至多只有兩顆子樹,並且二叉樹的子樹有左右之分,次序不能顛倒。
二叉樹是n(n≥0)個結點的有限集合:其或者為空二叉樹(n=0),或者由乙個根結點和兩個互不相交的被稱為根的左子樹和右子樹組成。左子樹和右子樹又分別是一棵二叉樹。
二叉樹是有序樹,若將其左右子樹顛倒,則成為另一棵不同的二叉樹。即使樹中結點只有一棵子樹,也要區分是左子樹還是右子樹。其有五種基本形態如下:
二叉樹與度為2的有序樹的區別:
(1)度為2的樹至少有3個結點(根結點),而二叉樹可以為空;
(2)度為2的有序樹的孩子結點的左右次序是相對於另一孩子結點而言的,若某個結點只有乙個孩子結點,則這個孩子結點無需分左右。但二叉樹左右孩子是確定的。
二、幾個特殊的二叉樹
1.滿二叉樹
一棵高度為h,且含有
滿二叉樹的葉子結點都集中在二叉樹的最下一層,並且除葉子結點之外的每個結點度數均為2。自上而下,自左至右對滿二叉樹編號,對於編號為i的結點,若有雙親,其雙親為
2.完全二叉樹
設乙個高度為h,有n個結點的二叉樹,當且僅當其每個結點都與高度為h的滿二叉樹中編號為1~n的結點一一對應時,稱為完全二叉樹。如圖所示:
其具有如下特點:
(1)若i≤
(2)葉子結點只可能在層次最大的兩層上出現。對於最大層次中的葉子結點,都依次排列在該層最左邊的位置上;
(3)若有度為1的結點,則只可能有乙個,且該結點只有左孩子而無右孩子;
(4)按層序編號後,一旦出現某結點(編號為i)為葉子結點或只有左孩子,則編號大於i的結點均為葉子結點;
(5)若n為奇數,則每個分支節點都有左孩子和右孩子;若n為偶數,則編號最大的分支結點(編號為n/2)只有左孩子,沒有右孩子,其餘分支結點左孩子右孩子都有。
3.二叉排序樹
一棵二叉樹或者是空二叉樹,或者是具有如下性質的二叉樹:左子樹上所有結點的關鍵字均小於根結點的關鍵字;右子樹上的所有結點的關鍵字均大於根結點的關鍵字。左子樹和右子樹又各是一棵二叉排序樹。
4.平衡二叉樹
樹上任一結點的左子樹和右子樹的深度之差不超過1。
5.紅黑樹
紅黑樹是一種自平衡二叉查詢樹。
三、二叉樹的性質
1.非空二叉樹上的葉子結點數等於度為2的結點數加1,即;
證明:設度為0、1和2的結點個數分別為
2.非空二叉樹上第k層上至多有
3.高度為h的二叉樹至多有
4.對完全二叉樹按從上到下、從左到右的順序依次程式設計1,2,…,n,則有以下關係:
(1)當i>1時,結點i的雙親結點編號為
(2)當2i≤n時,結點i的左孩子編號為2i,否則無左孩子;
(3)當2i+1≤n時,結點i的右孩子編號為2i+1,否則無右孩子;
(4)結點i所在層次(深度)為
5.具有n個(n>0)結點的完全二叉樹的高度為
二叉樹 一 定義與特徵
基本概念,系形如上圖結構的樹為二叉樹。針對於某個節點,根節點到該節點的長度為深度,該節點的層數為深度。預設的,對與根節點,深度為0,高度為1,層數為0.任何深度為d的節點的層數都是d。面試中,經常問到的幾個問題。滿二叉樹 每乙個節點或者是乙個分支節點,並恰好有兩個非空子節點 或者是葉節點。完全二叉樹...
二叉樹基本定義及遍歷
一.樹的定義 樹是一種資料結構,它是由n n 1 個有限結點組成乙個具有層次關係的集合。樹具有的特點有 每個結點有零個或多個子結點 沒有父節點的結點稱為根節點 每乙個非根結點有且只有乙個父節點 除了根結點外,每個子結點可以分為多個不相交的子樹。樹的基本術語有 若乙個結點有子樹,那麼該結點稱為子樹根的...
二叉樹及二叉樹的遍歷
二叉樹的定義 樹的度為2的樹。二叉樹的遞迴定義 二叉樹或者是一棵空樹,或者是一棵由乙個根結點和兩棵互不相交的左子樹和右子樹所組成的非空樹,而左右子樹又都是一棵二叉樹。1.第i層上至多有2的i 1次方個結點。2.深度為h的二叉樹至多有2的h次方減1個結點。3.每一層都滿的二叉樹稱為滿二叉樹,只在最後一...