1.B树的总结

https://blog.csdn.net/qq_32924343/article/details/80167184

1.关于根节点
根节点要么没有儿子,[2, m]个儿子
2.其他节点要么没有儿子,要么[m/2向上取整, m]个儿子
3.每个节点中的key个数
m/2向上取整-1 <= key <= m-1

插入:

节点中key的数目过大:

1.分裂2.将中间节点拆分后合并到父节点3.父节点继续调整

删除

删除可能导致key的数目过小

删除非叶子结点:直接找后继结点,然后用删除叶子结点的方法

删除叶子结点方法:先找兄弟 再找爸爸 最后合并,爸爸有问题了,重复这一步

简而言之,总会用到删除叶子结点的方法

现在要删除120

1.122移动到120,删除122

2.130移动到122,删除130,之后合并

3.122移动到130,合并

2. B+树的总结

1.根节点[2, m]个儿子
2.其他节点[m/2向上取整, m]个儿子
3.关键字数和儿子数相同

插入

和B树的区别在于合并分裂时把中间节点保留了一份(下图的m=4)

插入数据7

删除

直接删除叶子结点,直接采用找兄弟找爸爸再合并

删除9呢

找爸爸再合并

3.B+树和B树的区别

1.关键字

B+树的关键字和子树个数一样

B树的关键字个数比子树少1

2.叶子结点

B+树的叶子结点有关键字和指针,并且叶子结点之间顺序连接

B+树的叶子结点有只有部分关键字和指针,并且叶子结点无连接

3.非叶子结点

B+树的非叶子结点没有关键字信息

B树的叶子结点有关键字信息和指针

4. 非叶子结点的子树指针P[i],指向关键字值属于[K[i], K[i+1])的子树

(B树是开区间) 左闭右开

个人觉得非常好的B树,B+树的总结相关推荐

  1. AVL树、splay树(伸展树)和红黑树比较

    AVL树.splay树(伸展树)和红黑树比较 一.AVL树: 优点:查找.插入和删除,最坏复杂度均为O(logN).实现操作简单 如过是随机插入或者删除,其理论上可以得到O(logN)的复杂度,但是实 ...

  2. Uva 3767 Dynamic len(set(a[L:R])) 树套树

    Dynamic len(set(a[L:R])) Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 https://uva.onlinejudge.org/in ...

  3. bzoj3110: [Zjoi2013]K大数查询 【树套树,标记永久化】

    //========================== 蒟蒻Macaulish:http://www.cnblogs.com/Macaulish/  转载要声明! //=============== ...

  4. Trie(前缀树/字典树)及其应用

    from:https://www.cnblogs.com/justinh/p/7716421.html Trie,又经常叫前缀树,字典树等等.它有很多变种,如后缀树,Radix Tree/Trie,P ...

  5. 【计算理论】图灵机 ( 非确定性图灵机 | 非确定性图灵机指令分析 | 计算过程 | 非确定性指令出现多个分支 | 非确定性图灵机转为计算树 | 计算树 )

    文章目录 一.非确定性图灵机 二.非确定性图灵机 指令 三.非确定性图灵机 计算示例 初始状态 四.计算步骤 1 五.计算步骤 2 六.计算步骤 3 ( 出现非确定性分支 ) 七.计算步骤 3-1 ( ...

  6. [算法学习] 线段树,树状数组,数堆,笛卡尔树

    都是树的变种,用途不同 [线段树 Interval Tree] 区间管理,是一种平衡树 可看做是对一维数组的索引进行管理.一维数组不需要是排序好的 深度不超过logL 任一个区间(线段)都分成不超过2 ...

  7. python 树_Python树的概念

    1.定义 1)非线性结构,每个元素可以有多个前驱和后继. 2)树是n(n>=0)个元素的集合. n=0时,称为空树. 树只有一个特殊的没有前驱的元素,称为树的根root. 树中除了根节点外,其余 ...

  8. 数据结构和算法分析:B树 B+树 和B*树的总结

    1. 前言 动态查找树主要有:二叉查找树(Binary Search Tree),平衡二叉查找树(Balanced Binary Search Tree),红黑树(Red-Black Tree ),B ...

  9. hdu1394 Minimum Inversion Number 线段树和树状数组

    题意: 输入一个长度 n 第二行给出长度为n的数组,数组的值刚好为0到n-1这n个数. 然后每次把数组的第一个数放到最后一个,放n-1次,共有n个排列,这n个排列就有n个逆序数,输出这n个逆序数的最小 ...

  10. Algorithm:树相关算法(BBT/BST/B树/R树)简介(二叉查找树、二叉查找树的插入节点、二叉查找树的删除、二叉树的遍历、平衡二叉树)C 语言实现

    Algorithm:树相关算法(BBT/BST/B树/R树)简介(二叉查找树.二叉查找树的插入节点.二叉查找树的删除.二叉树的遍历.平衡二叉树)C++语言实现 目录 树的基础知识 1.二叉树的遍-前序 ...

最新文章

  1. R使用深度学习LSTM构建时间序列预测模型
  2. django model 条件过滤 queryset.filter(**condtions) 用法
  3. 【转】王晟教授:给光纤3室研究生的一封公开信
  4. C++用stack实现深度优先搜索DFS(附完整源码)
  5. gtest 测试部分_全部关于测试–第1部分
  6. JAVA Opencv在图片上添加中文
  7. 洪水填充算法_Flood Fill (洪水填充、泛洪填充、油漆桶)算法Java循环实现(BFS方式,非递归)...
  8. 【Spark】sparksql中使用自定义函数
  9. 小白如何快速学会C++?
  10. EDA与VHDL题目——七人表决器
  11. 颜色空间转换-从RGB到LCH-亮度饱和度色度
  12. 用计算机弹生日歌,神秘操作!吴丹妮酷狗直播竟用计算器唱生日歌!
  13. UnityShader入门精要——运动模糊(2)
  14. matlab 二维地图常用绘图函数用法(plot,fill,rectangle)
  15. C# 通过RS-232 读取 34401A万用表电压
  16. Win10右键文件无响应崩溃
  17. java利用pol导出excel
  18. Python 通过文本生成词云
  19. 可以在线编译运行代码的网站(支持Python)
  20. k3s 部署nacos-server:v2.1.1-slim

热门文章

  1. Readline-select
  2. [3/18]Windows Server 2008 服务器配置之一DNS
  3. 回顾2018——区块链行业十大关键词
  4. 寄Android开发Gradle你需要知道的知识
  5. iOS开发笔记(二):block循环引用
  6. jQuery基础之(一)jQuery概述
  7. PSXDMS cassandra testing
  8. ubuntu 10.04 安装 pyquery
  9. JDK1.6安装与环境变量设置详细图解
  10. Delphi和C++数据类型对照表