1. 程式人生 > >樹與二叉樹——定義

樹與二叉樹——定義

color 二叉 來源 col tree round 描述 目錄 樹和二叉樹

樹形結構是一類重要的非線性結構數據結構。其中以樹和二叉樹最為常用,直觀看來,樹是以分支關系定義的層次結構。

樹的定義與基本術語

  樹的結構定義是一個遞歸定義,即在樹的定義中又用到樹的概念。除了樹形表示外,樹形結構還有廣義表表示、文氏圖表示(反映集合包含關系)和凹人表示(類似一本書的目錄)等其他表示形式。

下面給出樹的一些基本術語,主要來源於家譜和樹:

①結點(node)

它包含數據項即指向其他結點的分支。為方便起見,每個數據項用單個字母表示。

②節點的度(degree)

它是結點所擁有的子樹棵數。

③葉子結點(leaf)

即度為0的結點,稱為葉子或中斷結點。

④分支結點(branch)

度不為0的結點稱為非終端結點或分支結點。

⑤子女節點(child)

若節點x有子樹,則子樹的根節點即結點x的子女。

⑥雙親節點(parent)

若節點x有子女,它即子女的雙親。

⑦兄弟結點(sibling)

同一雙親的子女互稱為兄弟。

⑧祖先結點(ancestor)

從根節點到該結點所經分支上的所有結點。

⑨子孫結點(descendant)

某一結點的子女,以及這些子女都是該節點的子孫。

⑩結點所處層次(level)

簡稱結點的層次,即從根到該結點所經路徑上的分支條數。

?樹的高度(depth)

樹中結點所處的最大層次。空樹的高度為0,只有一個根結點的樹的高度為1。

?樹的度(degree)

樹中結點所處的最大層次。

?有序樹

樹中結點的各棵子樹T0

,T1,......是有次序的,即有序樹。

?無序樹

樹中結點的各棵子樹之間的次序是不重要的,可以互相交換位置。

?森林(forest)

m(m>=0)棵樹的集合在自然界中,樹與森林是兩個不同的概念,但在數據結構中,它們之間的差別很小。刪去一棵非空樹的根結點,樹就變成森林;反之,若增加一個根結點,讓森林中每一棵樹的根結點都變成它的子女,森林就成為一棵樹。

二叉樹的定義

  二叉樹(binary tree)的定義也是以遞歸的形式給出的:一棵二叉樹是結點的一個有限集合,該集合或者為空,或者是由一個根結點加上兩棵分別稱為左子樹和右子樹的、互不相交的二叉樹組成。

二叉樹的特點是每個結點最多有兩個子女。也就是說,在二叉樹中不存在度大於2的結點,並且二叉樹的子樹有左右之分,其子樹的次序不能顛倒,因此,它可能有5種不同的形態。

描述樹的所有術語對於二叉樹都適用。

v、

  

樹與二叉樹——定義