社区
数据结构与算法
帖子详情
关于B-树节点指针的存储问题
xjbwd
2008-04-13 11:12:37
B-树节点都存在外存上,那么节点的指针应该如何处理
B树查找时每次只读入一个节点到内存,那么节点中的指针应该存的什么东西?它指向的节点在外存的物理地址?
我的想法是 每个节点保存在一个文件中,然后节点中的指针所指向的节点用节点文件名来代替,但总感觉这么好象不太好,不知道还有没有更好的办法?
求教~谢谢~
...全文
197
8
打赏
收藏
关于B-树节点指针的存储问题
B-树节点都存在外存上,那么节点的指针应该如何处理 B树查找时每次只读入一个节点到内存,那么节点中的指针应该存的什么东西?它指向的节点在外存的物理地址? 我的想法是 每个节点保存在一个文件中,然后节点中的指针所指向的节点用节点文件名来代替,但总感觉这么好象不太好,不知道还有没有更好的办法? 求教~谢谢~
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
rushman
2008-04-14
打赏
举报
回复
[Quote=引用楼主 xjbwd 的帖子:]
B-树节点都存在外存上,那么节点的指针应该如何处理
B树查找时每次只读入一个节点到内存,那么节点中的指针应该存的什么东西?它指向的节点在外存的物理地址?
我的想法是 每个节点保存在一个文件中,然后节点中的指针所指向的节点用节点文件名来代替,但总感觉这么好象不太好,不知道还有没有更好的办法?
求教~谢谢~
[/Quote]
把指针看作一种描述,用来找到节点、数据的描述。那么它可以是一个偏移量——目标节点或数据在文件中的偏移量。
xjbwd
2008-04-14
打赏
举报
回复
额 确实忽略了节点分裂和合并了。。。
再观望下
要是实在没有更好的办法 也只能考虑用文件偏移量了
xjbwd
2008-04-14
打赏
举报
回复
用C语言实现的额。。。
CathySun118
2008-04-14
打赏
举报
回复
尝试使用XML文件,都保存到一个文件中
rushman
2008-04-14
打赏
举报
回复
[Quote=引用 6 楼 xjbwd 的回复:]
能不能得到 文件在硬盘中的物理地址呢 或者磁盘扇区? 然后用absread() ?
[/Quote]
这样只会使问题更复杂……
xjbwd
2008-04-14
打赏
举报
回复
能不能得到 文件在硬盘中的物理地址呢 或者磁盘扇区? 然后用absread() ?
rushman
2008-04-14
打赏
举报
回复
有些工作是不可避免的。
如果要减少节点位置发生变化导致的数据修改,可以为节点建一个查找表。
xjbwd
2008-04-14
打赏
举报
回复
[Quote=引用 3 楼 rushman 的回复:]
把指针看作一种描述,用来找到节点、数据的描述。那么它可以是一个…
[/Quote]
这个考虑过,但是如果文件经过修改,因该需要修改很多 目标节点或数据在文件中的偏移量?
B+
树
节点
与插入操作
本文围绕B+
树
节点
与插入操作展开。先介绍B+
树
节点
设计,包括
节点
格式、组成部分、简化限制等,还提及键大小限制和解耦数据结构与IO。接着阐述更新
节点
、分裂
节点
的操作及逻辑,最后详细说明B+
树
插入操作的流程、实现细节和关键点,为构建高效B+
树
奠定基础。
B
树
节点
合并的终极指南:快速掌握数据库核心算法
本文深入剖析B
树
节点
合并的触发条件、基本流程及实现机制,涵盖内部
节点
与叶
节点
结构、合并与分裂的平衡关系,并探讨阶数选择、延迟合并和批量操作等关键优化策略。重点聚焦于数据库索引维护中的
节点
合并技术,揭示其对查询性能与
存储
效率的影响。
B+
树
节点
分裂
本文介绍了B+
树
节点
分裂的相关知识。B+
树
是多路平衡查找
树
,插入新键值使
节点
超出最大容量时需分裂。回顾了B+
树
基本结构,详细阐述叶子
节点
、内部
节点
和根
节点
的分裂过程,还举例说明,最终
树
保持平衡,可能增加高度。
数据结构与算法:磁盘
存储
索引的B
树
与B+
树
本文介绍了B
树
和B+
树
在磁盘
存储
索引中的应用,强调了它们减少磁盘IO次数的优势。B
树
是一种多路平衡查找
树
,每个
节点
最多包含m个孩子,其特点是矮胖。B
树
和B+
树
的主要区别在于数据
存储
和查询方式。B
树
节点
存储
数据,B+
树
内
节点
仅做索引,数据
存储
在叶子
节点
。文章详细讲解了B
树
的定义、叶子
节点
的前后
指针
、插入的
节点
分裂、删除的前后借位和
节点
合并,以及B+
树
的线程安全策略。同时提供了B
树
的插入、删除、遍历、查找的代码实现。
磁盘
存储
链式的 B
树
与 B+
树
本文介绍了 B
树
与 B+
树
出现的背景、结构和适用场景。指出红黑
树
不适合磁盘
存储
的原因,阐述 B
树
为减少磁盘访问次数而设计,B+
树
在此基础上为范围查找和磁盘友好做了改进。还分析了磁盘
存储
与页结构,给出 C++ 实现 B
树
示例,解释数据库多用 B+
树
的原因。
数据结构与算法
33,026
社区成员
35,336
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章