數據結構中的經典樹

在大大小小的各家軟件公司的面試、筆試中,關於數據結構的問題總是難以避免的。作爲一名程序員如果不瞭解基本的數據結構顯然是不夠合格的,即使你做的前端,即使你只是使用第三方庫開發……Anyway! 關於數據結構的範圍太廣,個人的認識也不夠全面,今天開始打算把關於數據結構中的樹部分稍微整理一下,理清一下思路,作爲日後的筆記做參考使用。

樹狀圖是一種數據結構,它是由n(n>=1)個有限結點組成一個具有層次關係的集合。把它叫做“樹”是因爲它看起來像一棵倒掛的樹,也就是說它是根朝上,而葉朝下的。它具有以下的特點:

  • 每個結點有零個或多個子結點;
  • 沒有前驅的結點稱爲根結點;
  • 每一個非根結點有且只有一個父結點;
  • 除了根結點外,每個子結點可以分爲m個不相交的子樹;

樹

樹的應用範圍非常廣泛,從數據的組織到數據存儲,數據查找,數據更新,數據分析等等,幾乎在計算機的每個領域都能看到樹的身影。在所有這些樹中,最經典最常用的莫過於二叉樹(Binary Tree)了。這一系列關於樹的文章將重點圍繞二叉樹展開,並做適當擴展,包括:

  • 二叉查找樹 (Binary Find Tree)
  • 平衡二叉樹 (AVL Tree)
  • 紅黑樹 (Red-Black Tree)
  • 字典樹 (trie Tree)
  • 後綴樹 (Suffix Tree)
  • B-樹、B+樹、B*樹
  • R樹
  • ……

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章