红黑树: 在平衡二叉树稳定性的基础上,再优化一下,减少旋转次数
特性:
1、每个节点要么是红色,要么是黑色。
2、根节点必须是黑色。
3、红色节点不能连续(也即是,红色节点的孩子和父亲都不能是红色)。
4、对于每个节点,从该点至null(树尾端)的任何路径,都含有相同个数的黑色节点。
二叉树特点:查找速度和比较次数最小,但是磁盘IO,当数据量过大的时候,索引大小可能有几个G,不可能全都加载到内存
引出下面的树更稳
B树与B+树
B树 、B - 树都读B树。
B树与B+树区别:
B树每个节点都存储数据,所有节点组成这棵树。B+树只有叶子节点存储数据(B+数中有两个头指针:一个指向根节点,另一个指向关键字最小的叶节点),叶子节点包含了这棵树的所有数据,所有的叶子结点使用链表相连,便于区间查找和遍历,所有非叶节点起到索引作用。
B树中叶节点包含的关键字和其他节点包含的关键字是不重复的,B+树的索引项只包含对应子树的最大关键字和指向该子树的指针,不含有该关键字对应记录的存储地址。
B树中每个节点(非根节点)关键字个数的范围为[m/2(向上取整)-1,m-1](根节点为[1,m-1]),并且具有n个关键字的节点包