多种树结构分析

2021-03-04  本文已影响0人  skipper_shou

(一)二叉树

二叉树指的是每个节点最多只能有两个子树的有序树。

二叉树特点

二叉树的分类

二叉树的存储

二叉树的遍历

复杂度问题

空间复杂度:无论是那种遍历方式,都需要一个辅助栈来存储,每个节点都要进栈和出栈,不过是顺序的区别,所以空间复杂度始终为O(n)。
时间复杂度:通过遍历循环的方式获取,足够大时,时间复杂度为O(n)

(二)B树

B树也称B-树,它是一颗多路平衡查找树。M定义节点的分支个数。

特点

B树的插入

B树的删除

复杂度问题

B树的复杂度和B+树类似,统一到B+树中讨论。

B+树

B+树其实就是对B树的改造。

特点

B+树的插入

B+树的删除

删除操作因为有指针的存在,就不需要通过父节点了,直接通过兄弟结点移动即可。然后更新父节点的索引。
删除步骤同B树借元素的逻辑。删除后不足借兄弟结点的元素,修改父节点的索引,不足时进行合并,更新父节点索引。

B+树的时间复杂度

假设一个含有N个值,阶为n的B+树。
很显然,查询需要按照树结构从上往下查询,当树越高,查询的复杂度越高,也就是当分叉最少的时候,即只分为两叉时,复杂度越高。
而每个节点的数值为:n/2 <= k <= n-1,同时,二叉的结构,又将数分成了两颗子树,得到以下公式:(n/2)^h >=N/2;
意思是,每个节点有至少n/2个选择对应下一个节点,共有h次这样的选择,因此,时间复杂度为O(log N).

B+树在mysql中的使用

主键索引

联合索引

叶子结点最后存储的是主键,因为联合索引是非聚簇索引

2-3树

红黑树

红黑树,Red-Black Tree 「RBT」是一个自平衡(不是绝对的平衡)的二叉查找树(BST),

特点

红黑树的插入

红黑树的删除

树之间的比较

B树和B+树

上一篇下一篇

猜你喜欢

热点阅读