社区
数据结构与算法
帖子详情
关于B-树节点指针的存储问题
xjbwd
2008-04-13 11:12:37
B-树节点都存在外存上,那么节点的指针应该如何处理
B树查找时每次只读入一个节点到内存,那么节点中的指针应该存的什么东西?它指向的节点在外存的物理地址?
我的想法是 每个节点保存在一个文件中,然后节点中的指针所指向的节点用节点文件名来代替,但总感觉这么好象不太好,不知道还有没有更好的办法?
求教~谢谢~
...全文
144
8
打赏
收藏
关于B-树节点指针的存储问题
B-树节点都存在外存上,那么节点的指针应该如何处理 B树查找时每次只读入一个节点到内存,那么节点中的指针应该存的什么东西?它指向的节点在外存的物理地址? 我的想法是 每个节点保存在一个文件中,然后节点中的指针所指向的节点用节点文件名来代替,但总感觉这么好象不太好,不知道还有没有更好的办法? 求教~谢谢~
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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-
树
1 .B-
树
定义:有序数组+平衡多叉
树
B-
树
是一种平衡的多路查找
树
,它在文件系统中很有用。 定义:一棵m 阶的B-
树
,或者为空
树
,或为满足下列特性的m 叉
树
: ⑴
树
中每个结点至多有m 棵子
树
; ⑵若根结点不是叶子结点,则至少有两棵子
树
; ⑶除根结点之外的所有非终端结点至少有[m/2] 棵子
树
; ⑷所有的非终端结点中包含以下信息数据: (n,A0,K1,A...
B-
树
(B
树
)
一,B-
树
就是B
树
英文名字叫做B-tree,中间的短线是英文连接符,只是翻译的时候将短线翻译成了减号。全称Balance-tree(平衡多路查找
树
),平衡的意思是左边和右边分布均匀。多路的意思是相对于二叉
树
而言的,二叉
树
就是二路查找
树
,查找时只有两条路,而B-tree有多条路,即父
节点
有多个子
节点
。 二,B-
树
用途 使用B-tree结构可以显著减少定位记录时所经历的中间过程,从而加快存取...
B
树
、B-
树
、B+
树
、B*
树
介绍
B
树
、B-
树
、B+
树
、B*
树
之间的关系B
树
B+
树
B*
树
B
树
B-
树
就是B
树
(可能有部分人会习惯上把B-
树
读为B减
树
,其实并不存在B减
树
,只是读法上的不同而已),B就是balanced,平衡的意思。B-
树
就是指的B
树
,特此说明一下。 先介绍一下二叉搜索
树
。 顾名思义,二叉搜索
树
,即指最多拥有两个叉,这里的叉即为所有非叶子结点的儿子(Lift和Right); 所有的结点
存储
一个关键字; 非叶子结点...
【数据结构】B
树
数据结构概念与组成原理,B_
树
(B-
树
)算法
B-TreeB-Tree定义什么是外存外存磁盘结构对外存进行查找阶的概念B
树
性质B-
树
的
存储
结构中,结点的类型定义B-
树
的查找B-
树
的插入将关键字k插入到B-
树
的过程分两步完成:(1)查找该关键字的插入结点。(2)插入关键字。**分裂过程:**B-
树
的删除1. 在叶子结点层上删除关键字k。1.直接删除2.兄弟够借**左兄弟够借**右兄弟够借3.兄弟不够借在非叶子结点层上删除关键字k。1.若小于k的子
树
中关键字个数>[m/2]-1,则找出k的前驱值k',并用k’来取代k,再递归地删除k'即可。2.若大于
B-
树
和 B+
树
的区别
特性B-
树
B+
树
数据
存储
数据
存储
在内部
节点
和叶子
节点
数据只
存储
在叶子
节点
叶子
节点
链接不链接叶子
节点
按链表顺序链接查询效率查询时可能需要遍历多个
节点
查询效率较高,叶子
节点
按顺序
存储
范围查询不如B+
树
高效高效,通过叶子
节点
链表实现插入与删除操作较为复杂,可能涉及多个
节点
插入和删除操作较简单,只影响叶子
节点
内存使用
节点
存储
数据,内存占用较大内部
节点
不
存储
数据,内存利用率更高。
数据结构与算法
33,027
社区成员
35,336
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章