樹是由 n(n≥0) 個結點組成的有限集合。如果n=0,稱為空樹;
如果n>0,則:
有乙個特定的稱之為根的節點,它只有直接後繼,但沒有直接前驅;
除根以外的其他節點劃分為m((m≥0)個互不相交的有限集合t0,t1,…tm-1,每個集合又是一棵樹,並且稱之為根的子樹。每個子樹的根節點有且只有乙個直接前驅,但可以有0個或多個直接後繼。
一棵二叉樹是結點的乙個有限集合,該集合或者為空,或者是由乙個根結點加上兩棵分別稱為左子樹和右子樹的、互不相交的二叉樹組成。
滿二叉樹
在一棵二叉樹中,如果所有分支節點都存在左子樹和右子樹,並且所有的葉子節點都在同一層上,這樣的二叉樹稱為 " 滿二叉樹 "。
單是每個結點都存在左右子樹,不能算是滿二叉樹,還必須要所有的葉子結點都在同一層上,這就做到了整棵樹的平衡。因此,滿二叉樹的特點有:
完全二叉樹
對於一棵具有 n個節點的二叉樹按照層序編號,如果編號為 i(1≤ i ≤ n1)的節點與同樣深度的滿二叉樹中編號為 i的節點在二叉樹中位置完全相同,則這棵二叉樹稱為」完全二叉樹「。
滿二叉樹一定是完全二叉樹,完全二叉樹不一定是滿二叉樹
完全二叉樹的特點:
性質1:在二叉樹的第 i 層上至多有 2^(i-1)個結點(i ≥ 1)
性質2:深度為 k 的二叉樹至多有 2^k-1個結點(k ≥ 1)
性質3:對任何一棵二叉樹 t,如果其終端結點數為 n0,度為2的節點數為 n2,則n0=n2+1
性質4:具有 n個結點的完全二叉樹的深度為 ⌊log2n⌋+1 (其中⌊x⌋ 表示向下取整,即表示不大於x的最大整數)
性質5:如果對一棵有 n個結點的完全二叉樹(其深度為⌊log2n⌋+1)的結點按層序編號(從第 1層到第 ⌊log2n⌋+1 層,每層從左到右),對任一結點 i(1≤i≤n)有:
注意:
如果根節點從0開始存放的二叉樹,則:
當乙個節點為i,其父節點為(i-1)/2,左子節點為2i+1,右子節點為2i+2;
而如果根節點從1開始,則:
當乙個節點為i,其父節點為i/2,左子節點為2i,右子節點為2i+1;
廣度優先遍歷
層次遍歷
深度優先遍歷
中序遍歷
若樹為空,則空操作返回
否則:
前序遍歷
若二叉樹為空,則空操作;否則
後序遍歷
若二叉樹為空,則空操作;否則
資料結構 樹與二叉樹
一 性質 1 在二叉樹中,第i層的結點總數不超過2 i 1 2 深度為h的二叉樹最多有2 h 1個結點 h 1 最少有h個結點 3 對於任意一棵二叉樹,如果其葉結點數為n0,而度數為2的結點總數為n2,則n0 n2 1 4 具有n個結點的完全二叉樹的深度為int log2n 1 5 給定n個節點,能...
資料結構 樹與二叉樹
1 樹的定義 樹是一種 非線性的資料結構。樹是n n 0 個結點的有限集,在任意一棵非空樹中 1 有且僅有乙個特定的被稱為 根 root 的結點 2 當n 1時,其餘結點可分為m m 0 個互不相交的有限集,其中每個集合本身又是一棵樹,並且稱為根的 子樹 subtree 3 每棵子樹也是由唯一的根結...
資料結構 樹與二叉樹
樹是一類重要的非線性資料結構,是以分支關係定義的層次結構 定義 樹 tree 是n n 0 個結點的有限集t,其中 有且僅有乙個特定的結點,稱為樹的根 root 當n 1時,其餘結點可分為m m 0 個互不相交的有限集t1,t2,tm,其中每乙個集合本身又是一棵樹,稱為根的子樹 subtree 特點...