這篇博文主要講的是樹的基本概念,是為後一篇博文做基礎的。後一篇博文將主要是實現樹的演算法。
1:樹是由n(
n>=0
)個節點組成的有限集合。
2:每個子樹的根節點有且僅有乙個直接前驅,但可以有
0個或多個直接後驅。不只是二叉樹。
3:節點:它包含資料項及指向其它節點的分支。
4:節點的度:是節點所擁有的子樹棵樹。
5:葉節點:就是度為
0的節點。
6:分支節點:除了葉節點之外的其它節點。
7:子女節點:若節點
x有子樹,則子樹節點就是子女節點。
8:雙親節點:若節點
x有子女,,它就是子女的雙親節點。
9:兄弟節點:同乙個雙親的子女互稱為兄弟。
10:祖先節點:從根節點到該節點所經過的所有分支上的節點。
11:子孫節點:某一節點的子女,以及這些子女的子女都是該節點的子孫。
12:節點所處的層次:即從根節點到該節點所經路徑上的分支條數。樹中任一節點的層次為它的雙親節點的層次加1。
13:樹的高度:樹中節點所處的最大層次。
14:樹的度:樹中節點的度的最大值。
15:森林:說白點,就是很多樹的集合。
二叉樹的概念集合:
1:一棵二叉樹是節點的乙個有限集合,該集合或者為空,或者是由乙個根節點加上兩棵分別為左子樹和右子樹的、互不相交的二叉樹組成。很明顯,這個概念是以遞迴的形式給出的。
2:二叉樹的特點是每個節點最多有兩個子女。
二叉樹的性質:
1:若二叉樹的層次從
0開始,則在二叉樹的第
i層最多有
2i個節點。
2:高度為
k的二叉樹最大節點數為
2k+1
-1個(
k>=-1)。3
:對任何一棵二叉樹,如果其葉節點個數為
n0,度為
2的非葉節點個數為
n2,則有
n0=n2+1。
2)》中見。
演算法不會,尚能飯否之排序 直接選擇排序
前面講了那麼多的排序,不知道有沒有人看,如果有人看,就吱一聲,也好讓我有信心在寫下去了!不管了,還是那句話,寫自己的博文,讓別人說去吧,現在應該是,寫自己的博文,讓別人看去吧!看不 看,是你的事,寫不寫是我的事!好了,廢話少說,開始今天的征程 直接選擇排序!演算法思想 所謂直接選擇排序,如下 1 在...
演算法之字典樹
字典樹以字首訪問資料,就像檔案系統一樣,從根出發,只要知道某段資料的字首,就能找到相應的資料。同時,當存入新資料時,需建立新節點,然後將新資料依次插入對應字段。本例中字典樹以英文小寫字母的基礎資料。struct node node child 26 bool flag insert s,trie n...
Java之演算法(1)
1 排序 collections類中的sort方法可以一對實現了list介面的集合進行排序 例子 liststaff new linkedlist staff.add sss staff.add ablily staff.add slina staff.sort comparator.reverse...