BST,二叉搜索树,极端情况变成了链表
1.所有非叶子结点至多拥有两个儿子(Left和Right);
2.所有结点存储一个关键字;
3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树;
AVL,平衡二叉树
定义:平衡二叉树或为空树,或为如下性质的二叉排序树:
(1)左右子树深度之差的绝对值不超过1;
(2)左右子树仍然为平衡二叉树.
平衡因子BF=左子树深度-右子树深度.
平衡二叉树每个结点的平衡因子只能是1,0,-1。若其绝对值超过1,则该二叉排序树就是不平衡的。
RBT 红黑树
AVL是严格平衡树,因此在增加或者删除节点的时候,根据不同情况,旋转的次数比红黑树要多;
红黑是弱平衡的,用非严格的平衡来换取增删节点时候旋转次数的降低;
所以简单说,搜索的次数远远大于插入和删除,那么选择AVL树,如果搜索,插入删除次数几乎差不多,应该选择RB树。
红黑树上每个结点内含五个域,color,key,left,right,p。如果相应的指针域没有,则设为NIL。
一般的,红黑树,满足以下性质,即只有满足以下全部性质的树,我们才称之为红黑树:
1)每个结点要么是红的,要么是黑的。
2)根结点是黑的。
3)每个叶结点,即空结点(NIL)是黑的。
4)如果一个结点是红的,那么它的俩个儿子都是黑的。
5)对每个结点,从该结点到其子孙结点的所有路径上包含相同数目的黑结点。

B-树
是一种平衡多路搜索树(并不是二叉的):

B+树

B*树
是B+树的变体,在B+树的非根和非叶子结点再增加指向兄弟的指针;

本文深入探讨了五种重要的数据结构:二叉搜索树(BST)、AVL树、红黑树、B树和B+树。BST在极端情况下可能退化成链表。AVL树是严格平衡的二叉树,而红黑树是弱平衡的,牺牲部分平衡以减少旋转次数。B树是一种多路搜索树,而B+树在此基础上增加了指向兄弟节点的指针。这些数据结构在不同的场景下有不同的优势。
873

被折叠的 条评论
为什么被折叠?



