一:n阶B树的插入和删除
这是一个3阶的B树,
1.每个结点最多有2个关键字。
2.根结点(9)最少可以只有1个关键字。
3.非根结点至少有1个关键字
4.满足每个节点中的关键字小到大排列
「六分钟速通」B树的插入与删除 简明易懂_哔哩哔哩_bilibili
注意一下删除时:需要保证节点的关键字数量在 n/2-1 - n-1
二:平衡二叉树插入和删除(平衡树就是左右子树的高度差小于等于一)
「六分钟速通」平衡二叉树(AVL树)的插入与删除_哔哩哔哩_bilibili(这个讲的是从头到尾依次插入)
一秒学会 平衡二叉树的调整,非标题党!不简单你打我! (考研数据结构)_哔哩哔哩_bilibili
(这个讲的是在原有的基础上插入)
这里注意视频中讲的离根节点最近的三个顶点(包括跟结点)指的是新节点插入的路径上里的
总结:
1.插入的时候是从根节点开始判断小就相左大就向右,到合适位置后,再判断是否平衡,然后再调整
2.调整的时候只需要看造成不平衡的三个结点并调整他们即可
三:大根堆的建立
堆排序-如何将初始序列构建成大根堆_哔哩哔哩_bilibili
四:二叉树
当二叉树使用顺序储存时,其1-5层的所有节点(包括空结点)都要被储存起来
所以:
1+2+4+8+16 = 31
五:哈夫曼编码
由哈夫曼的树可知符号的个数即为叶子节点的数量
即所以问题转化为共有115个结点求叶子节点:
(115+1)/2
六:森林
对于一个树不管是二叉三叉,它的边都比结点少一个,但如果有多个树,它们的节点数和边数的差就是树的个数
七:森林转换为二叉树
课本:P184