看CLRS 对B树的浅显理解
2024-08-30 12:56:35
定义及特点:
每个结点有n个关键字和n+1个指向子结点的指针,即有n+1个孩子结点。
n个关键字按非递减的顺序存储。
最小度数t>=2,除了根结点的所有内部结点(非叶结点)的孩子数>=t且<=2t,即相应的关键字数>=t-1且<=2t-1。
孩子数2t时为满结点。
搜索操作:
和BST差不多,只不过因为每个结点中的关键字增多,所以先要在结点中找到小于目标元素中的最大的一个关键字,然后在该关键字后的子树中继续递归寻找。
插入操作:
只插入到叶结点中,如果满了就把该叶结点分裂(把中间的结点提到父结点中,剩下的结点一边一半,作为父结点的两个子结点存在)。在向下搜索插入位置的时候,每遇到一个满结点,就把该结点分裂,否则在将目标元素插入到满的叶结点的时候,父结点如果是满的,还是要向上回溯,把相关的满结点分裂。
删除操作:
情况太复杂,用到的时候在看书。。
最新文章
- 浅析MySQL二进制日志
- jsp输出所有请求头的名称
- angularjs笔记(三)
- 修复eclipse中使用mave update project后JRE都变成1.5的问题
- 直接拿来用!最火的Android开源项目
- SQL中PERSISTED关键字
- Nodejs in Visual Studio Code 13.构建单页应用Scrat示例挖一挖
- IE layout详解
- codeforces--376D--376F(前缀和优化)
- 关于 HashTable
- 关于在Python2中使用列表推导式会遇到的问题
- MongoDB系列----uupdate和数组
- Android之Error: &#39;L&#39; is not a valid file-based resource name character解决办法
- Your project is not referencing the ";.NETPortable,Version=v4.5,Profile=Profile259"; framework. Add a reference to ";.NETPortable,Version=v4.5,Profile=Profile259"; in the ";frameworks"; section of your proj
- SpringMVC防止表单重复提交
- db2 创建用户及授权
- ruby字符串连接
- python的学习笔记之——time模块常用内置函数
- iOS 获取沙盒文件路径及 写入/删除 沙盒文件
- MysQL使用一高级应用(下)