樹與二叉樹——定義
樹形結構是一類重要的非線性結構數據結構。其中以樹和二叉樹最為常用,直觀看來,樹是以分支關系定義的層次結構。
樹的定義與基本術語
樹的結構定義是一個遞歸定義,即在樹的定義中又用到樹的概念。除了樹形表示外,樹形結構還有廣義表表示、文氏圖表示(反映集合包含關系)和凹人表示(類似一本書的目錄)等其他表示形式。
下面給出樹的一些基本術語,主要來源於家譜和樹:
①結點(node)
它包含數據項即指向其他結點的分支。為方便起見,每個數據項用單個字母表示。
②節點的度(degree)
它是結點所擁有的子樹棵數。
③葉子結點(leaf)
即度為0的結點,稱為葉子或中斷結點。
④分支結點(branch)
度不為0的結點稱為非終端結點或分支結點。
⑤子女節點(child)
若節點x有子樹,則子樹的根節點即結點x的子女。
⑥雙親節點(parent)
若節點x有子女,它即子女的雙親。
⑦兄弟結點(sibling)
同一雙親的子女互稱為兄弟。
⑧祖先結點(ancestor)
從根節點到該結點所經分支上的所有結點。
⑨子孫結點(descendant)
某一結點的子女,以及這些子女都是該節點的子孫。
⑩結點所處層次(level)
簡稱結點的層次,即從根到該結點所經路徑上的分支條數。
?樹的高度(depth)
樹中結點所處的最大層次。空樹的高度為0,只有一個根結點的樹的高度為1。
?樹的度(degree)
樹中結點所處的最大層次。
?有序樹
樹中結點的各棵子樹T0
?無序樹
樹中結點的各棵子樹之間的次序是不重要的,可以互相交換位置。
?森林(forest)
m(m>=0)棵樹的集合在自然界中,樹與森林是兩個不同的概念,但在數據結構中,它們之間的差別很小。刪去一棵非空樹的根結點,樹就變成森林;反之,若增加一個根結點,讓森林中每一棵樹的根結點都變成它的子女,森林就成為一棵樹。
二叉樹的定義
二叉樹(binary tree)的定義也是以遞歸的形式給出的:一棵二叉樹是結點的一個有限集合,該集合或者為空,或者是由一個根結點加上兩棵分別稱為左子樹和右子樹的、互不相交的二叉樹組成。
二叉樹的特點是每個結點最多有兩個子女。也就是說,在二叉樹中不存在度大於2的結點,並且二叉樹的子樹有左右之分,其子樹的次序不能顛倒,因此,它可能有5種不同的形態。
描述樹的所有術語對於二叉樹都適用。
v、
樹與二叉樹——定義