AVL树、SB树、红黑树的共性与不同
#有序表 #AVL #红黑树 #SB树
AVL树、SB树、红黑树的共性
1)都是搜索二叉树
2)插入、删除、查询(一切查询)搜索二叉树怎么做,这些结构都这么做
3)使用调整的基本动作都只有左旋、右旋
4)插入、删除时,从最底层被影响到的节点开始,对往上路径的节点做平衡性检查
5)因为只对一条向上路径的每个节点做O(1)的检查和调整,所以可以做到O(logN)
AVL树、SB树、红黑树的不同
1)平衡性的约束不同
AVL树最严格、SB树稍宽松、红黑树最宽松
2)插入、删除和搜索二叉树一样,但是额外,做各自的平衡性调整。各自的平衡性调整所使用的动作都是左旋或者右旋
AVL树、SB树、红黑树
为了达到自己的专属平衡性, 设计了一些动作, 底层基本动作都是左旋和右旋操作拼成的, 只是细节不一样
本质就是搜索二叉树, 而且他们的平衡性是自我约束的, 它们增加, 查询, 删除的动作跟搜索二叉树完全
没有差别, 差别的点在于, 插入, 删除了之后, 怎么在额外的进行平衡动作不一样
AVL, SB, 红黑树 查哪些节点调平衡都是一回事, 只是具体到某一个节点发现不平的动作不一样,
但是受影响的节点是哪些, 他们都是一样的