目录
各种字典结构时间复杂度总:
树总览
AVL 定义:
特征:
15.1-15.4
15.8
要点 如果为父节点p 高度差为0 则说明此颗子树高度减少了1 需要向上改变值
15.9
AVL最少节点个数及归纳证明:
平衡二叉查找树(AVL)的理解与实现 - zxzhang - 博客园 (cnblogs.com)
15.10
额 ,自己画图证明
1: 当然限于 -2到2 因为到超过|1| 就会改变旋转
2: 插入只会导致差值+-1 ,肯定
3:只有从根到插入节点会改变,因为另一颗子树的高度差值于此无关
4:插入后第一个2或-2的节点p 插入前肯定为1 或 -1
p到插入节点的值(不算p本身) 插入之前肯定为 0,如果不为0 则P在插入之前就为2了
15.11
15.12
15.13
15.14
15.15
纸上谈兵: AVL树 - Vamei - 博客园 (cnblogs.com)
15.16
一样的,只不过运行插入相同元素
15.17-18
插入删除按AVL来 ,其他都一样
15.19
关键字是缓冲站顶部的编号,这样查找就会降到logN
15.20
用数组线性来表示?
15.21
nlogN
15.22
一样的,平衡好了很多
红黑树:
定义:
红黑树的阶:
定理:
15.23-26
27-30
31.
32.
33.
34.
35.
15.36 -40
红黑树(四)之 C++的实现 - 如果天空不死 - 博客园 (cnblogs.com)
能力范围之外啦!不会
分裂树:
注意: 1 如果删除的是根结点 ,分裂节点就是左孩子,不是则是其父亲
2 每次操作完成后,都通过类似AVL的旋转使分裂节点变为root (连续使用)
3 分裂操作是有限个分裂步骤(旋转)组成,为了使其变为root
15.41 -49
一样的不画了,无非就是双旋,单旋转
15.50
高度为n 要用O(n) 来定位,然后用 h/2 次分裂步骤来使其变为root 所以为 O(n)
15.51
因为是由这些类型的旋转组合而成的
15.52-56
B- 树:
m叉搜索树定义:
B- :
-->
B- 高度:
57:-58
59-60:
61
节点大于块时 次数会减少
62:
3H,h自己带公式
63:
4h-1次
64:
1)
2)
这 描述不是自相矛盾了嘛? 没看懂 。。。。。
------------------------------
65-66
B-Tree(B树)原理及C++代码实现 - 简讯 - 博客园 (cnblogs.com)
总结:
AVL:
红黑:
分裂树:
B- :
最坏插入次数:
最坏删除次数:
心得: 都是类似于一种自底向上的方法,删除或插入发生冲突时,都是父节点++ 或-- 才导致总数H +-
B+ 树:
avl与红黑区别:
AVL树和红黑树区别_专注后台开发技术-CSDN博客_avl和红黑树区别
B树应用场景:
B树、B+树详解 - Assassinの - 博客园 (cnblogs.com)
磁盘:
关于硬盘扇区的基本知识_yongheng_1999的博客-CSDN博客_硬盘扇区
---------------------------------------------------------------------------
这章之后关于树的基本结构都学完了