递归结构如何存储?比如,B+树、链表之类。(菜鸟)

xaqaga 2009-06-28 06:44:27
就是英文单词索引。

首先,是标题上提到的问题,

然后,我的考虑是:

索引加载到内存时,如果记录较少时,正常;记录较多时,异常。

我知道这种情况肯定会出现,但是,多少记录时会出现这种情况?
...全文
195 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
xaqaga 2009-07-01
  • 打赏
  • 举报
回复
这是个误会
todaylxp 2009-06-30
  • 打赏
  • 举报
回复
我的B+/R+是用std::vector/page

xaqaga 2009-06-29
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 hairetz 的回复:]
引用 2 楼 xaqaga 的回复:
要做一个开放式的数据库,但是,还在准备阶段。

数据结构肯定要自己做,初步的想法是:

采用类似二叉树遍历(比如,中序遍历)的方式,将所有节点依次保存到文件,

但是,恢复的时候怎么办?数据结构不好啊

还有,每次加载索引必须全部加载吗?我想,将B+树(以单词索引为例)从根节点分成若干子树,然后存储到文件,会有更好的效果吗?



恢复的时候,设置一个固定的初始化算法…
[/Quote]

这种方式,对于动态索引有什么要求吗?
xaqaga 2009-06-29
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 litaoye 的回复:]
主要是不知道xml在效率上能否满足LZ的要求,但用xml保存树结构的话,是非常简单的!


引用 7 楼 xaqaga 的回复:
对xml不够了解
[/Quote]

谢谢提示。

还想问一下,如果用两种遍历顺序保存树,效率会怎样?
绿色夹克衫 2009-06-29
  • 打赏
  • 举报
回复
主要是不知道xml在效率上能否满足LZ的要求,但用xml保存树结构的话,是非常简单的!

[Quote=引用 7 楼 xaqaga 的回复:]
对xml不够了解
[/Quote]
xaqaga 2009-06-29
  • 打赏
  • 举报
回复
对xml不够了解
xaqaga 2009-06-29
  • 打赏
  • 举报
回复
to hairetz

其实,我想问有没有与先序(或其他)遍历的逆向算法,可以根据文件中结点次序重建树?

to litaoye
litaoye的方法可以重建,但是,岂不是要将树保存两次,这对于动态索引会不会带来速度问题?

绿色夹克衫 2009-06-29
  • 打赏
  • 举报
回复
只用先序遍历有问题,至少要2个序列才行,比如中序+先序。

另外不知道用xml可以么?
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 xaqaga 的回复:]
要做一个开放式的数据库,但是,还在准备阶段。

数据结构肯定要自己做,初步的想法是:

采用类似二叉树遍历(比如,中序遍历)的方式,将所有节点依次保存到文件,

但是,恢复的时候怎么办?数据结构不好啊

还有,每次加载索引必须全部加载吗?我想,将B+树(以单词索引为例)从根节点分成若干子树,然后存储到文件,会有更好的效果吗?
[/Quote]

恢复的时候,设置一个固定的初始化算法,根据文件名或者数据的行数,在内存里把文件内容映射到hash表里。(初始化过程稍微久一点),如果需要遍历数据,最好额外给内存里的hash表再建立一个索引。
derek02 2009-06-29
  • 打赏
  • 举报
回复
up//
xaqaga 2009-06-28
  • 打赏
  • 举报
回复
要做一个开放式的数据库,但是,还在准备阶段。

数据结构肯定要自己做,初步的想法是:

采用类似二叉树遍历(比如,中序遍历)的方式,将所有节点依次保存到文件,

但是,恢复的时候怎么办?数据结构不好啊

还有,每次加载索引必须全部加载吗?我想,将B+树(以单词索引为例)从根节点分成若干子树,然后存储到文件,会有更好的效果吗?

neohope 2009-06-28
  • 打赏
  • 举报
回复
[Quote=引用楼主 xaqaga 的帖子:]
就是英文单词索引。

首先,是标题上提到的问题,

然后,我的考虑是:

  索引加载到内存时,如果记录较少时,正常;记录较多时,异常。

  我知道这种情况肯定会出现,但是,多少记录时会出现这种情况?
[/Quote]

你说的索引,该数据结构是你自己写的吗?

33,028

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧