数据结构之树概述
非線性結構:
樹的定義:樹(Tree)是n(n>=0)個節(jié)點的有限集T。它或是空集(空樹即n=0),或者是非空集。
對于任意一顆非空樹:
(1)有且僅有一個特定的稱為根的節(jié)點。
(2)當n>1時,其余節(jié)點可分為m(m>0)個互不相交的有限集合T1,T2,T3,......................,Tm? 其中每個集合本身又是一棵樹,并稱為根的子樹。
樹定義
專業(yè)定義:
1. 有且只有一個稱為根的節(jié)點
2.有若干個互不相交的子樹,這些子樹本身也是一棵樹
通俗的定義:
1.樹是由節(jié)點和邊組成
2.每個節(jié)點只有一個父節(jié)點但可以有多個子節(jié)點
3.但有一個節(jié)點例外,該節(jié)點沒有父節(jié)點,此節(jié)點稱為根節(jié)點
專業(yè)術語
節(jié)點? ? ? ? ? ?父節(jié)點? ? ? ? ? ? 子節(jié)點
子孫? ? ? ? ? ?堂兄弟
深度 : 從根節(jié)點到最底層節(jié)點的層數(shù)稱之為深度 ,? 根節(jié)點是第一層1
葉子節(jié)點:? 沒有子節(jié)點的節(jié)點
非終端節(jié)點:實際就是非葉子節(jié)點
度:子節(jié)點的個數(shù)(最大的子節(jié)點)?
節(jié)點的度和樹的度:樹的節(jié)點包含一個數(shù)據(jù)元素及若干個指向其子樹的分支,一個節(jié)點擁有的子樹數(shù)稱為該節(jié)點的度。一個樹中節(jié)點最大的度數(shù)稱為該樹的度
葉子節(jié)點、分支節(jié)點和根節(jié)點:度數(shù)為0的節(jié)點稱為葉子節(jié)點或終端節(jié)點。度數(shù)不為0的節(jié)點稱為非終端節(jié)點或分支節(jié)點。除根節(jié)點外,分支節(jié)點也稱為內(nèi)部節(jié)點,而根節(jié)點又稱為開始節(jié)點
孩子節(jié)點和雙親節(jié)點:樹中某個節(jié)點子樹的根稱為該節(jié)點的孩子,響應地,該節(jié)點稱為孩子節(jié)點的雙親或父節(jié)點。
子孫節(jié)點和祖先節(jié)點:若在一棵樹中存在著一個節(jié)點序列k1,k2,......kj? ?使得ki是ki+1的父節(jié)點(1=<i<=j),則稱為該節(jié)點序列是從k1到kj的一條路徑。若樹中的節(jié)點ki到kj存在一條路徑則稱節(jié)點ki是kj的祖先,節(jié)點kj是ki的子孫
節(jié)點的層次和樹的高度:樹中節(jié)點的層次是從根開始算起,根為第一層,其余節(jié)點的層次等于雙親節(jié)點的層數(shù)加1.樹中節(jié)點最大的層次稱為樹的深度或者高度
有序樹和無序樹:如果將樹中節(jié)點的各個子樹看成是從左到右依次有序且不能交換,則稱該樹為有序樹,否則稱為無序樹
森林:森林是m(m>=0)棵互不相交的樹的集合。若將一棵樹的根節(jié)點刪除,就的得到該樹的子樹所構成的森林;如果將森林中所有樹作為子樹,用一個根節(jié)點把子樹都連起來,森林就變成了一棵樹。
樹分類
一般樹:任意一個節(jié)點的子節(jié)點的個數(shù)都不受限制
二叉樹:任意一個節(jié)點的子節(jié)點個數(shù)最多兩個,且子節(jié)點的位置不可更
森林:n個互不相交的樹的集合
?
一般樹:任意一個節(jié)點的子節(jié)點的個數(shù)都不受限制
二叉樹:任意一個節(jié)點的子節(jié)點個數(shù)最多兩個,且子節(jié)點的位置不可更改
? ?分類:
? ? ? ?一般二叉樹
? ? ? ?滿二叉樹:在不增加樹的層數(shù)的前提下,無法再多添加一個節(jié)點的二叉樹就是滿二叉樹
? ? ? ?完全二叉樹:如果只是刪除了滿二叉樹最底層最右邊的連續(xù)若干個節(jié)點,這樣形成的二叉樹就是完全二叉樹
總結
- 上一篇: Bit-Z转入GXS、PPS、SPHTX
- 下一篇: oracle arp绑定mac地址,使用