数据结构-树和二叉树01(定义、度、深度、有序树、森林)
樹的定義
樹作為一種一對多的數據結構,其定義如下:? ? ? ? ? ?
樹(Tree)是n(n ≥ 0)個結點得有限集。n = 0時稱為空樹。在任何一顆非空樹中:
(1)有且僅有一個特定的稱為根(Root)的結點;
(2)當n > 1時,其余結點可分為m(m > 0)個互不相交的有限集,其中每個集合本事又是一棵樹,并且稱為根的子樹。? ? ??
圖中,A為根結點A,其余結點組成子樹。
如以A為根結點,可以分為以下兩個子樹
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
而D、G、H、I又組成以B為根結點的子樹,E、J組成以C為根結點的子樹。
?
注意幾點:
(1)一棵樹,除了根結點沒有前驅結點外,其余結點都有唯一的前驅元素,但是可以有多個后驅元素。
(2)n>0時,根結點是唯一的。子樹也是樹,所以每個子樹都有唯一確定的根結點,一個結點本身就是一個樹,這個數的根就是結點本身。
(2)m>0,子樹的個數是沒有限制的,但是它們一定是不相交的。如果相交也就違背(1)了。如圖E結點就有兩個前驅結點:
?
結點分類
樹的結點包含一個數據元素及若干指向其子樹的分支。結點擁有的子樹數稱為結點的度(Degree)。度為0的結點稱為葉結點(Leaf)或終端結點;度不為0的結點稱為非終端結點或分支結點。除根結點之外,分支結點也稱為內部結點。樹的度是樹內各結點的度的最大值。
如圖所示,這棵樹結點的度的最大值時結點D的度,為3。所以樹的度為3.?
?
樹的其他相關概念
結點的層次(Level)從根開始定義起,根為第一層,根的子節點為第二層。樹中結點的最大層次稱為樹的深度(Depth)或高度。下圖樹的深度為4。
?
如果將樹中結點的各子樹看成從左至右是有次序的,不能互換的,則稱該樹為有序樹,否則稱為無序樹。
?
森林(Forest)是m(m≥0)棵互不相交的樹的集合。
總結
以上是生活随笔為你收集整理的数据结构-树和二叉树01(定义、度、深度、有序树、森林)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python a,b = b,a 是怎么
- 下一篇: 数据结构—什么叫满K叉树?