二叉树
比当前节点小的在左边,大的在右边
举例
依次输入5、4、6、3、7、2、1
则树长这样
缺点:如果输入1、2、3、4、5、6、7则退化成链表
平衡二叉树(红黑树)
依次输入1、2、3、4、5、6、7
结论
不是完全平衡
AVL树
依次输入1、2、3、4、5、6、7得到如下图
结论:
完全平衡的二叉树、但是旋转次数太多了,如果查询远大于删除、修改可以
如果删除和修改和查询差不多,则效果不如红黑树
B Tree
依次输入1、2、3、4、5、6、7、8、9、10、11、12、13、14、15、16、17、18、19、20
结论
完全平衡
可以设置每个块数据大小
每个节点都会存放数据
B+ Tree
依次输入1、2、3、4、5、6、7、8、9、10、11、12、13、14、15、16、17、18、19、20
结论
B Tree升级版
更适合索引
由于只有叶子节点存放数据、所以非叶子节点可以存放更多的节点
叶子节点有双向指针