數據結構之「樹」

什麼是樹?

樹是由n(n>0)個有限節點組成一個具備層次關係的集合,一個父節點有0個或多個子節點。
用樹結構來表示一對多的關係。
樹的特色:
1.沒有父節點的節點稱爲根節點。
2.每個非根節點有且只有一個父節點。
3.除了根節點外,每一個子節點能夠分爲多個不相交的子樹。
4.每一個節點都 0 個或多個子節點。
5.樹裏沒有環路,就是節點只能向下衍生,跟樹同樣,不能相交於其它子樹。
數組

樹的術語

根節點:沒有父幾點,而且每棵樹只有一個根節點。
父節點:若一個節點含有子節點,則這個節點稱爲其子節點的父節點。
子節點:一個節點含有的子樹的根節點稱爲該節點的子節點。
葉子節點:最底層的,度爲零的節點。
兄弟節點:具備相同父節點的節點互稱爲兄弟節點。
堂兄弟節點:父節點在同一層的節點互爲堂兄弟。
分支節點:中間的,度不爲零的節點。
節點的度:一個節點含有的子樹的個數稱爲該節點的度。
樹的度:一棵樹中,最大的節點的度稱爲樹的度。
深度:對於任意節點 n, n 的深度爲從根到 n 的惟一路徑長,根的深度爲 0。
高度:對於任意節點 n, n 的高度爲從 n 到一片樹葉的最長路徑,全部葉子節點的高度爲 0。
節點的祖先:從根到該節點所經分支上的全部節點。
節點的子孫:以某節點爲根的子樹中任一節點都稱爲該節點的子孫。
節點的層次:從根開始定義起,根爲第 1 層,根的子節點爲第 2 層,以此類推。
森林:由m(m >= 0)棵互不相交的樹的集合稱爲森林。微信

總結

樹 實際上就是表示一對多的關係,數組和鏈表遍歷查找時間複雜度是 O(n),當 n 很大時,就很是影響查詢效率,所以須要其餘的數據結構來解決此類問題。就像二叉查找樹、平衡二叉樹、B樹、B+樹等,都是用來解決查詢效率低的。數據結構

PS:
清山綠水始於塵,博學多識貴於勤。
我有酒,你有故事嗎?
微信公衆號:「清塵閒聊」。
歡迎一塊兒談天說地,聊代碼。
spa

相關文章
相關標籤/搜索