【发布时间】:2019-09-22 03:14:42
【问题描述】:
我想使用 JAVA 将 B+ 树保存在文件中。 首先,我使用了序列化。但是,如果树的高度很大,就会发生 Stackoverflow。 有什么方法可以将 B+ Tree 保存到文件中?
【问题讨论】:
-
展示您的尝试和遇到的问题。
我想使用 JAVA 将 B+ 树保存在文件中。 首先,我使用了序列化。但是,如果树的高度很大,就会发生 Stackoverflow。 有什么方法可以将 B+ Tree 保存到文件中?
【问题讨论】:
如果您的 B+ 树高度足够大以至于导致堆栈溢出,那么您实现它的方式就有问题。根据Wikipedia的说法,B+树的特征包括它的高度是它所拥有的记录数的对数。
无论如何,如果你给它们一个非常深的数据结构,大多数标准的序列化实现都会遇到困难。
但是,您可以为您的 B+ 树实现自己的树遍历器,避免递归,并将其用作序列化程序的起点。不过,这都是自定义代码;即您需要自己编写。首先搜索“non-recursive tree walk”。
【讨论】: