数据结构——特殊的二叉树

二叉搜索树(Binary Search Tree)

  • 空树 or
  • 左子树所有节点的值 <= 其根节点的值 <= 右字数所有节点的值 and
  • 左右子树也都是二叉搜索树
  • ❗ 中序遍历的结果是递增排序

(强)平衡二叉树 AVL

  • 二叉搜索树中每个节点的左子树和右子树高度之差<=1
  • 插入节点不平衡后需要通过旋转平衡
  • ❗ 旋转很费时间,所以AVL适合插入和删除操作比较少的情况
  • 应用:快速查找

弱平衡二叉树(红黑树)(RBTree)

  • 定义:
    • 所有节点不是黑色就是红色
    • 根节点必须是 黑色
    • 叶子节点必须是 黑色
    • 如果一个节点是红色,那么它的两子节点都是黑色
    • 对每个结点,从该结点到其子孙结点的所有路径上包含相同数目的黑结点。
  • 性质:从根到叶子的最长的可能路径不多于最短的可能路径的两倍长
  • 复杂度:
    •  
  • 应用:
    • STL中的map和set

(未完待续)

B-树

定义:

  • 每个节点最多m个分支
    • 根节点(非叶子节点)至少两个分支
    • 非根非叶节点

 

B+树

 

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