数据结构与算法:从基础到高级的完全指南
发表时间: 2019-11-15 22:12
二叉搜索树
大的在右边,小的在左边
缺点:无限插入一边元素,一直小,一直大,造成树的深度高,退化成链表
平衡二叉树—AVL树
左右子树的高度差不超过1(平衡因子)
旋转
平衡的调整共有四种情况:分别为LL,LR,RR,RL。
下面我们通过不断插入数据来说明几种不同的旋转方式:
例子
红黑树—RBT
Java8中红黑树、数据库索引、TreeMap、TreeSet,时间复杂度O(lgN)
自平衡二叉查找树
隐藏性质:
插入时默认插入红色,空的节点默认视为黑色(叶子节点)
修复规则:
根据插入情况应用处理策略调整,直到满足性质
插入情况
例子:
此时4节点处于Case1,执行处理
此时当前节点为7,处于Case3,执行处理
此时当前节点为2,处于Case2,执行处理
得到满足性质的红黑树