【问题标题】:Storing a B-Tree in a file将 B-Tree 存储在文件中
【发布时间】:2014-10-23 12:49:16
【问题描述】:

我找到了很多关于 b-tree 的文章,但没有一篇对我有帮助。

我想在磁盘上存储一个 B-tree,但我不想序列化树对象,我认为有一种方法可以按某种顺序只保存树的值,之后我可以恢复又是一棵树。

我尝试按某些顺序存储值,例如预排序、中序(对称)、后序,但是当再次插入值时,树会发生变化。

下图是我要存储的 b-tree 示例。

图片来自http://slady.net/java/bt/view.php,B-Tree 动画小程序。

那么,有一种方法可以用它的值来保存树的结构吗?

【问题讨论】:

标签: java data-structures tree graph-algorithm b-tree


【解决方案1】:

你说得对,B 树并不意味着作为一个整体进行序列化。它们可以作为内存数据结构,但最有用的是作为内存可能不同的磁盘数据结构(可能一次只在内存中保存一个节点)。

有关使用磁盘上的 B 树和缓存在内存中的节点子集的 Java 代码示例,请参阅 JDBM 源代码,其中一个起点可能是 https://github.com/jankotek/JDBM3/blob/master/src/main/java/org/apache/jdbm/BTreeNode.java#L831

【讨论】:

  • 这个算法很复杂,也许答案就在那里,但我看不到..你能解释一下存储b-tree结构的基本方法吗?我不需要让几个节点变得懒惰,我只想将树保存在文件中并在之后以相同的方式恢复树。
猜你喜欢
  • 1970-01-01
  • 2018-03-13
  • 1970-01-01
  • 2017-03-02
  • 2011-05-17
  • 2011-08-07
  • 2019-08-31
  • 2012-11-05
  • 1970-01-01
相关资源
最近更新 更多