資料結構學習筆記11 樹與二叉樹

2021-08-10 14:43:11 字數 1223 閱讀 3482

1.樹的定義:

樹是n個結點的有限集。在任意一顆非空樹中應滿足:

(1)有且僅有乙個特定的稱為根(root)的結點;

(2)當n>1時,其餘結點可分為m(m>0)個互不相交的有限集,其中每乙個集合本身又是一棵樹,並且稱為根的子樹。

每棵子樹的根節點有且僅有乙個直接前驅,但可以有0個或多個直接後繼。

由此可以看到,樹的定義是乙個遞迴的定義,即樹的定義中又用到了樹的定義。

下圖中給出了常見的樹的例子:

樹的相關概念(重要性質):

(1).結點的度:每個結點度指的是這個結點的子女數,即結點所擁有的子樹的個數。

(2).所有結點的度數+1=結點總數

2.二叉樹

(1)二叉樹的定義:

二叉樹是一種應用廣泛的樹形結構,它的特點是每個結點最多只能有兩個孩子。在二叉樹中,必須嚴格區分左右孩子,次序不能顛倒,若改變次序則變成

二叉樹的特點:

(a).非空二叉樹上葉子結點數等於雙分支結點數+1。(證明方法可用上文中樹的性質:所有結點的度數+1=結點總數。設二叉樹中的葉子結點數、單分支結點數、雙分支結點數分別為n0,n1,n2,則n0+n1+n2=n0x0+n1x1+n2x2+1,即n0=n2+1)

(b).非空二叉樹上第i層上至多有2^(i-1)個結點。

(3).高度為h的二叉樹至多有2^i -1個結點。

(2)滿二叉樹

滿二叉樹的定義:一棵高度為h,並且有2^h-1個結點的二叉樹稱為滿二叉樹。

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

(3)完全二叉樹

完全二叉樹的定義:設乙個深度為h的二叉樹,每層結點的數目如果滿足:

a)第i層( 1<=i<=(h-1) )上的結點個數均為2^(i-1)

b)第h層從右邊起連續缺若干個結點

這樣的二叉樹稱為完全二叉樹,其特點是:

a)葉節點僅在層次最大的兩層出現

b)對任一結點,若其右子樹的高度為l,則其左子樹的高度只能是l或l+1.

資料結構學習筆記 二叉樹

樹,非線性表結構 樹有三個概念 高度從下向上數,起點是0 深度從上向下數,起點是0 層數從上向下數,起點是1 每個節點最多兩個叉 有兩種特殊二叉樹 滿二叉樹,除了葉子節點,每個節點都有左右兩個子節點 完全二叉樹,葉子節點都在最底下兩層,最後一層葉子節點都靠左排列,且除了最後一層,其它層節點個數都達到...

資料結構學習記錄14 樹與二叉樹

二.二叉樹 4.二叉樹的遍歷 三.程式設計原理 四.實現 本來上一章應該還有稀疏矩陣的十字鍊錶儲存和廣義表。但是廣義表,更多的是偏向於題目,了解下概念,能計算就行了。廣義表從某種程度來說,也算是一棵樹。樹是乙個n 0 個結點的有限集。在任意一顆非空樹中 有且僅有乙個特定的結點叫做根結點root當n ...

資料結構學習(1) 二叉樹

二叉樹結構 public class treenode 前序遍歷 根結點,左子樹,右子樹 public static void prenode treenode node,listtreelist 中序遍歷 左子樹,根結點,右子樹 public static void midnode treenod...