數據結構——特殊的二叉樹

二叉搜索樹(Binary Search Tree)

  • 空樹 or
  • 左子樹所有節點的值 <= 其根節點的值 <= 右字數所有節點的值 and
  • 左右子樹也都是二叉搜索樹
  • ❗ 中序遍歷的結果是遞增排序

(強)平衡二叉樹 AVL

  • 二叉搜索樹中每個節點的左子樹和右子樹高度之差<=1
  • 插入節點不平衡後需要通過旋轉平衡
  • ❗ 旋轉很費時間,所以AVL適合插入和刪除操作比較少的情況
  • 應用:快速查找

弱平衡二叉樹(紅黑樹)(RBTree)

  • 定義:
    • 所有節點不是黑色就是紅色
    • 根節點必須是 黑色
    • 葉子節點必須是 黑色
    • 如果一個節點是紅色,那麼它的兩子節點都是黑色
    • 對每個結點,從該結點到其子孫結點的所有路徑上包含相同數目的黑結點。
  • 性質:從根到葉子的最長的可能路徑不多於最短的可能路徑的兩倍長
  • 複雜度:
    •  
  • 應用:
    • STL中的map和set

(未完待續)

B-樹

定義:

  • 每個節點最多m個分支
    • 根節點(非葉子節點)至少兩個分支
    • 非根非葉節點

 

B+樹

 

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