數據結構:樹 數據結構
1.樹的定義ip
由n(n>=1)個有限節點組成一個具備層次關係的集合,叫作樹;它看起來像一棵倒掛的樹;get
2.樹的特色:二叉樹
a.每一個節點有零個或多個子節點終端
b.沒有父節點的節點稱爲根節點im
c.每個非根節點有且只有有一個父節點數據
d.除了根節點外,每個子節點能夠分爲多個不相交的子樹img
3.樹的專業術語:集合
a.節點的度:一個節點含有的子樹的個數稱爲該節點的度;圖 A 節點的度爲2di
b.樹的度:一棵樹中,最大的節點的度稱爲樹的度 圖 B 節點的度爲3 爲樹中最大節點的度 全部樹的度爲3
c.葉節點或者終端節點:度爲零的節點 圖 K、J、L、O、P
d.非終端節點或者分支節點:度不爲零的節點
e.父親節點或者父節點:若一個節點含有子節點,則這個節點稱爲其子節點的父節點
f.孩子節點或者子節點:一個節點含有的子樹的根節點稱爲該節點的子節點;
g.兄弟節點:具備相同父節點的節點互稱爲兄弟節點;
h.節點的層次:從根開始定義起,根爲第1層,根的子節點爲第2層,以此類推;
i.樹的高度或者深度:樹中節點的最大層次;圖 樹的高度爲5
j.堂兄弟節點:父節點在同一個的節點 圖 D與G 互稱爲堂兄弟節點
k.節點的祖先:從根到該節點所經分支上的全部節點 圖 K的祖先 A、B、D、I
l.子孫:以某節點爲根的子樹中任一節點都稱爲該節點的子孫 圖 B的子孫 D、E、F、I、J、K
m.森林:由m(m>=0)棵互不相交的樹的集合稱爲森林;
從定義可知,一棵樹有根結點和m個子樹構成,若把樹的根結點刪除,則樹變成了包含m棵樹的森林。固然,根據定義,一棵樹也能夠稱爲森林。
4.樹的分類:
a.無序樹:樹中任意節點的子節點之間沒有順序關係,這種樹稱爲無序樹,也成爲自由樹;
b.有序樹:樹中任意節點的子節點之間有順序關係,這種樹稱爲有序樹:
b1:二叉樹:每一個節點最多含有兩個子樹的樹稱爲二叉樹
徹底二叉樹:對於一顆二叉樹,假設其高度爲d(d>1)。除了第d層外,其餘各層的節點數目均已達到最大值,且第d層全部節點從左向右連續地緊密排列,這樣的二叉樹被稱爲徹底二叉樹
滿二叉樹;對於上述的徹底二叉樹,若是去掉其第d層的全部節點,那麼剩下的部分就構成一個滿二叉樹(此時該滿二叉樹的高度爲d-1);
b2:霍夫曼樹:帶權路徑最短的二叉樹稱爲哈夫曼樹或最有二叉樹
b3:B樹