樹的定義:n個節點組成的有限集合。n=0,空樹;n>0,1個根節點,m個互不相交的有限集,每個子集為根的子樹。
1、基本術語:
節點的度:樹中某個節點的子樹的個數。
樹的度:樹中各節點的度的最大值。
分支節點:度不為零的節點。
葉子節點:度為零的節點。
路徑:i->j;路徑長度:路徑經過節點數目減1。
孩子節點:某節點的後繼節點;雙親節點:該節點為其孩子節點的雙親節點(父母節點);兄弟節點:同一雙親的孩子節點;子孫節點:某節點所有子樹中的節點;祖先節點:從樹節點到該節點的路徑上的節點。
節點的層次:根節點為第一層(以此類推);樹的高度:樹中節點的最大層次。
有序樹:樹中節點子樹按次序從左向右安排,次序不能改變;無序樹:與之相反。
森林:互不相交的樹的集合。
2、樹的性質
樹的節點樹為所有節點度數加1(加根節點)。
度為m的樹中第i層最多有m^(i-1)個節點。
高度為h的m次樹至多(m^h-1)/(m-1)個節點。
具有n個節點的m次樹的最小高度為logm( n(m-1) + 1 )
向上取整。
二叉樹:有限節點集合,或為空,或為乙個根節點和兩棵互不相交的左子樹和右子樹組成。
滿二叉樹:每個分支節點都有左孩子節點和右孩子節點。
完全二叉樹:二叉樹的最下面兩層的節點度數小於2,且最下面一層的葉子節點依次排列在該層的最左邊的位置。
二叉樹的性質
非空二叉樹上葉子節點樹等於雙分支節點樹加1
總分支數 = n1 + 2n2 ,總分支數 = n - 1 ,總節點數 = n0 + n1 + n2
非空二叉樹上第i層上至多有2i - 1個節點
高度為h的二叉樹至多有2h - 1個節點
完全二叉樹中的 i 節點,若2i ≤ n,i為分支節點,否則為葉子節點;若i節點有左孩子節點,編號為2i,若i節點有右孩子節點,編號為2i + 1
7 1 樹的基本概念 性質與運算
樹是由 n 個結點 或元素 組成的有限集合。通常用符號 t表示。當n 0時,稱為空樹 當n 0 時,有乙個根結點 root 由根結點又指向有限個互不相交的子集ti 這些子集同樣也是一顆樹,稱為子樹 sub tree 樹是一種利用遞迴定義的。通常用來表示具有層次的資料。樹是具有一對多的關係,可以由圖轉...
資料結構之樹的基本概念
樹是一種非線性的資料結構,它是若干節點的集合,是由唯一的根和若干個不相交的子樹組成的,其中每一棵子樹又是一棵樹。由此可知,樹是可以遞迴定義的,即在樹的定義中又用到了樹的定義。需要注意有乙個特殊情況,就是樹的節點可以為零,這個時候的樹就是一棵空樹。如下圖 其中a節點就是根節點,而b e k f l等節...
資料結構 棧的基本概念和性質
棧 stack 又名堆疊,它是一種運算受限的線性表。限定僅在表尾進行插入和刪除操作的線性表。這一端被稱為棧頂,相對地,把另一端稱為棧底。向乙個棧插入新元素又稱作進棧 入棧或壓棧,它是把新元素放到棧頂元素的上面,使之成為新的棧頂元素 從乙個棧刪除元素又稱作出棧或退棧,它是把棧頂元素刪除掉,使其相鄰的元...