当前位置:网站首页>B-Tree
B-Tree
2022-06-21 17:09:00 【云归而-暝】
前言
感觉严蔚敏的数据结构中关于BTree的操作过于理想。尤其是删除操作的判断兄弟节点。再把最大最小上移。感觉很啰嗦。于是自己抽象了几个元操作。插入删除都可以由此转换。有了down操作后其实都不用找最小叶节点再交换了。可以把要删除的值一路down到最底层。
元操作
split 操作
pull 操作
down 操作
check 操作 检查是否符合B-Tree树性质
删除和插入操作(递归)
insert
操作元素
- 当前工作节点 n
- 状态量 tag
定义
- n 为空:创建一个叶子节点,tag = 2
- tag = 0 : return
- tag =1 : 更新子节点,tag=0
- tag = 2:pull 操作
- check 为假:split 操作, tag = 2
- check 为真:tag=1
delete
操作元素
- 当前工作节点 n
- 状态量 tag
定义
- 删除后check为真:tag=0, return
- 删除后check为假:tag=1, return
- tag=0: return
- tag=1: 更新子节点
- check 为真 tag=0 return
- 兄弟节点为⌈m/2⌉:对n节点split,再down操作,tag=1
- 兄弟节点子树>⌈m/2⌉:对n节点split,再down操作,再对子节点split, 再pull操作。tag=1
边栏推荐
猜你喜欢

带你区分几种并行

180亿,苏州诞生一个超级母基金

SVG+Canvas粒子动态效果

Node输出方式

ByteDance proposes a lightweight and efficient new network mocovit, which has better performance than GhostNet and mobilenetv3 in CV tasks such as classification and detection!

RMB 18billion, a super master fund was born in Suzhou

文末送书 | 李航老师新作!机器学习经典著作《统计学习方法》全新升级

基本文件操作

Vue.js+Node.js全栈开发教程:连接MySQL

How to create your own AI creativity?
随机推荐
Three.js 3d粒子动画js特效代码
epoll+threadpool高并发网络IO模型的实现
Typescript的通用类型检查
Collaborative filtering
7.去空格函数-strip
微生物 个人笔记 taxonkit
使用jmeter做Web端自动化测试
Start! Alibaba programming summer 2022
力扣461.汉明距离
C1—Qt实现简易计算器的思路2021.10.15
文末送书 | 李航老师新作!机器学习经典著作《统计学习方法》全新升级
Cann training camp Season 2 - the opening ceremony | it starts at 7:30 tonight on time. You can't miss it!
Compound type of typescript
雷军的千亿失误?
C2—Qt实现串口调试助手2021.10.21
研发仅占3%的蕉下,是防晒黑科技,还是夏天的智商税?
Initialization of typescript class objects
Day10QRadiobutton2021-09-24
蓝色SVG波浪动态网页背景
A test tool for recording and playback interface based on mitmproxy