接下來我們進入到樹和二叉樹的學習
1.樹的概念
樹是由乙個集合以及在該集合上定義的一種關係構成的。集合中的元素稱為樹的結點,所定義的關係稱為父子關係。
父子關係在樹的結點之間建立了乙個層次結構。
樹的結點包含了乙個資料元素及若干指向其子樹的若干分支。
在這種層次結構中有乙個結點具有特殊的地位,這個結點稱為該樹的根結點,或簡稱為樹根。
我們可以形式的給出樹的遞迴定義如下:
樹(tree)是n(n>=0)個結點的有限集,它包含以下幾種:
1)空樹(n=0)
2)非空樹(n>0)
例如: (a)是一課空樹,(b)是只有乙個根結點的樹,(c)是一棵有十個結點的樹,其中a是根
2.結點的度與樹的度
結點擁有的子樹的數目稱為該結點的度(degree)
度為0的結點稱為葉子結點或者終端結點
度不為0的結點稱為非終端結點或者分支結點,除根之外的分支結點稱為內部結點
樹內各結點的度的最大值稱為樹的度
3.結點的層次和樹的深度
結點的層次(level)從根開始定義,層次數為1的結點是根結點,其子樹的根的層次數為2
樹中結點的最大層次數稱為樹的深度或高度
父親、兒子、兄弟
父親(parent):乙個結點的直接前驅結點
兒子(child):乙個結點的直接後繼結點
兄弟(sibling):同乙個父親結點的其他結點
例如:結點a是結點b、c、d的父親,結點b、c、d是結點a的孩子
由於結點h、i、j有同乙個父結點d,因此它們互為兄弟
祖先、子孫、堂兄弟
結點的祖先是從根結點到該結點路徑上的所有結點
以某結點為根的樹中的任意結點都稱為該結點的子孫
父親在同一層次的結點互為堂兄弟
例如:結點k的祖先為e、b、a,結點b的子孫為e、f、k、l
k、l、m互為堂兄弟
4.有序樹、m叉樹、森林
如果將樹中結點的各子樹看成是從左至右是有次序的,則稱該樹為有序樹
若不考慮子樹的順序,則為無序樹
對於有序樹,我們可以明確的定義每個結點的第乙個孩子,第二個孩子等,直到最後乙個孩子
若不特別指明,我們討論的都是有序樹
樹中所有結點的最大度數為m的有序樹稱為m叉樹
森林(forest)是m(m>=0)棵互不相交的樹的集合,對樹中每個結點而言,其子樹的集合稱為森林
樹和森林的概念相近。刪去乙個樹的根,就得到乙個森林。反之加上乙個結點為樹根,森林就變為一棵樹
資料結構和演算法基本概念
版本號 2018 09 25 1 23 00 特別鳴謝兄弟提供的幫助 jun shibata 丶 sank 1 資料結構的定義是什麼?資料結構是計算機儲存 組織資料的方式。資料結構是指相互之間存在一種或多種特定關係的資料元素的集合。2 用自己的話簡單講講什麼是資料結構?一組資料的儲存結構 3 演算法...
資料結構 樹 基本概念
之前說的線性結構是一對一的關係,這裡的樹就是一對多的資料結構。樹 tree 是n n 0 個結點的有限集。n 0時稱為空樹。在任意一棵非空樹中 1 有且僅有乙個特定的稱為根 root 的結點 2 當n 1時,其餘結點可分為m m 0 個互不相交的有限集 樹的定義其實用到了遞迴的方法,就是說樹的定義之...
資料結構 樹的基本概念
樹與非樹?二叉樹度為二的樹稱為二叉樹。那問題來了,何為度為二呢?其實,度的意思有些兒子的感覺,度為二的意思就是,樹中的節點,其兒子最多有兩個。就像現在的二孩政策,應該比較好理解吧。二叉樹有很多性質 比如,二叉樹第i層最大的節點數2 i 1 其中i 1 二叉樹的節點可以分為三種 1.沒有兒子的結點 度...