樹的定義
樹是n(n>=0)個(gè)節(jié)點(diǎn)的有限集煌茬。n=0時(shí)稱為空樹政溃,在任意一顆非空樹中蜒灰,有以下特性
1.有且僅有一個(gè)特定的稱為跟的節(jié)點(diǎn)
2.當(dāng)n>1時(shí)改备,其余節(jié)點(diǎn)可分為m(m>=0)個(gè)互不相交的有限集贾漏,其中每一個(gè)集合本身又是一棵樹后豫,并且稱為根的子樹
這個(gè)定義是一種比較新的定義方法被去,這里面用到了遞歸檐晕。
樹的節(jié)點(diǎn)包含一個(gè)數(shù)據(jù)元素及若干指向其子樹的分支。節(jié)點(diǎn)擁有的子樹稱為節(jié)點(diǎn)的度逗威,度為0的節(jié)點(diǎn)稱為葉節(jié)點(diǎn)或者終端節(jié)點(diǎn)峰搪。度部位0的節(jié)點(diǎn)稱為非終端節(jié)點(diǎn)或者分支節(jié)點(diǎn)。除根節(jié)點(diǎn)之外庵楷,分支節(jié)點(diǎn)也成為了內(nèi)部節(jié)點(diǎn)罢艾,樹的度是樹內(nèi)各節(jié)點(diǎn)的度的最大值楣颠。
節(jié)點(diǎn)的子樹的根稱為節(jié)點(diǎn)的孩子尽纽,相應(yīng)地,該節(jié)點(diǎn)稱為孩子的雙親童漩。同一個(gè)雙親的孩子之間互稱兄弟弄贿,節(jié)點(diǎn)的祖先是從根到該節(jié)點(diǎn)所經(jīng)過分支上所有節(jié)點(diǎn),以某節(jié)點(diǎn)為根的子樹中的任意節(jié)點(diǎn)都稱為該節(jié)點(diǎn)的子孫矫膨。
樹的抽象數(shù)據(jù)類型
Data:
樹是由一個(gè)根節(jié)點(diǎn)和若干棵子樹構(gòu)成差凹,樹中節(jié)點(diǎn)具有相同數(shù)據(jù)類型及層次關(guān)系。
Operation:
InitTree:構(gòu)造空樹
DestroyTree:銷毀樹
CreateTree:按需定義構(gòu)造樹
clearTree:若樹存在侧馅,則將樹清空
TreeEmpty:若樹為空危尿,則返回true,否則返回false
TreeDepth:返回樹的深度
Root:返回根節(jié)點(diǎn)
Value:返回一個(gè)節(jié)點(diǎn)的值
Assign:給節(jié)點(diǎn)賦值
Parent:如果是非Root節(jié)點(diǎn)馁痴,返回雙親
LeftChild:返回左孩子
RightSibling:返回右兄弟
InsertChild:插入子樹
DeleteChild:刪除子樹