樹是n(n>=0)個節點的有限集合t。當n=0時,稱為空樹;當n>0時,該集合滿足如下條件1.其中必有乙個稱為根(root)的特定節點,它沒有直接前驅,但又0個或多個直接後繼
2.其餘節點可分為m(m>0)個互不相交的有限集t1、t2、……、tm,其中每乙個集合本身又是一棵樹,並且稱為根的子樹(suntree)。
樹的定義需要強調的兩點:
1.n>0 時根是唯一的,不可能存在多個根節點,資料結構中的樹只能有乙個根節點。
2.m>0時,子樹的個數沒有限制,但它們一定互不相交。
結點擁有的子樹數成為結點的度(degree).
度為0的結點稱為葉節點(leaf)或終端節點。
度不為0的節點稱為非終端節點或分支節點。
除根結點之外,分支節點也成為內部節點。
樹的度是樹內個節點的度的最大值。
節點的子樹的根稱為該節點的孩子(child)。該節點稱為孩子的雙親(parent)。同乙個雙親的孩子之間互稱為兄弟(sibling)。
節點的祖先是從根到該節點所經分支的所有節點。
節點的層次(level)從根開始定義起,根為第一層,根的孩子為第二層。雙親在同一層的節點互為堂兄弟。樹中節點的最大層次稱為樹的深度(depth)或高度。
如果樹中節點的各子樹看成從左到右是有次序的,不能互換的,則稱改樹為有序樹,否則稱為無序樹。
森林(forest)是m(m>=0)棵互不相交的樹的集合。
二叉樹(binary tree)是n(n>=0)個節點的有限集合,該集合或者為空集(稱為空二叉樹),或者由乙個根節點和兩棵互不相交的、分別稱為根節點的左子樹和右子樹的二叉樹組成。
1.每個節點 最多 有兩棵子樹,所以二叉樹不存在度大於2的節點。
2.左子樹和右子樹是有順序的,次序不能任意顛倒。
3.即使樹中某節點只有一棵子樹,也要區分是左子樹還是右子樹。
二叉樹具有五種基本形態1.空二叉樹。
2.只有乙個根節點。
3.根節點只有左子樹。
4.根節點只有右子樹。
5.根節點既有左子樹又有右子樹。
1.斜樹
2.滿二叉樹
3.完全二叉樹
1.在二叉樹的第i層上最多有2 i-1 個節點 。(i>=1)
用歸納法證明:
歸納基:i = 1 層時,只有乙個根結點,
2i-1 = 20 = 1;
歸納假設:假設i=k時,命題成立;
歸納證明:二叉樹上每個結點至多有兩棵子樹,則
第 k+1 層的結點數 最多為2k-1 x 2 = 2k+1-1 。
2.二叉樹中如果深度為k,那麼最多有2k-1個節點。(k>=1)
證明:基於性質1,深度為 k 的二叉樹上的結點數至多為
2^0+2^1+ .....+2^k -1 = 2^k -1
3.n0=n2+1 n0表示度數為0的節點 n2表示度數為2的節點
4.在完全二叉樹中,具有n個節點的完全二叉樹的深度為[log2n]+1,其中[log2n]+1是向下取整。
設 完全二叉樹的深度為 k
則根據第二條性質得 2k-1-1n,則該結點無左孩子, 否則,編號為 2i 的結點為其左孩子結點;
(3) 若 2i+1>n,則該結點無右孩子結點, 否則,編號為2i+1 的結點為其右孩子結點。
樹與二叉樹 定義
樹形結構是一類重要的非線性結構資料結構。其中以樹和二叉樹最為常用,直 來,樹是以分支關係定義的層次結構。樹的定義與基本術語 樹的結構定義是乙個遞迴定義,即在樹的定義中又用到樹的概念。除了樹形表示外,樹形結構還有廣義表表示 文氏圖表示 反映集合包含關係 和凹人表示 類似一本書的目錄 等其他表示形式。結...
二叉樹 滿二叉樹與完全二叉樹
二叉樹 binary tree 是n n 0 個元素的有限集合,該集合為空或者為由乙個稱為 根 的元素及兩個不相交的 被分別稱為左子樹和右子樹的二叉樹組成 二叉樹的基本特點 每個結點最多有兩棵子樹 左子樹和右子樹是有順序的,且不可顛倒 圖一1 結點 二叉樹中的每乙個元素都稱為結點。通常二叉樹的許多名...
樹與二叉樹
樹是一類重要的非線性資料結構,是以分支關係定義的層次結構 定義 樹 tree 是n n 0 個結點的有限集t,其中 n 0時為空樹 n 0時,有且僅有乙個特定的結點,稱為樹的根 root 當n 1時,其餘結點可分為m m 0 個互不相交的有限集t1,t2,tm,其中每乙個集合本身又是一棵樹,稱為根的...