在磁盘存储器中实现树结构

时间:2015-06-23 18:26:05

标签: data-structures tree disk b-tree red-black-tree

我正在将一些数据写入文本文件(存储在磁盘中)作为我程序的输出。我想以搜索树格式组织文本文件中的数据,以便有效地搜索和替换(通过程序本身)。我想知道如何实现树结构存储在磁盘存储器中。

1 个答案:

答案 0 :(得分:1)

在磁盘上使用树数据结构的一个主要实际困难是,对于天真的二进制树,数据将“相隔很远”,并且尝试访问此数据可能会导致thrashing作为您的硬盘尝试连续访问磁盘上的不同位置。

此问题的经典解决方案是使用B-trees。 B树背后的基本思想是从磁盘读取是昂贵的,所以你应该尽可能少地使用它们。这是通过使用大节点来完成的; B树可以有 m 个孩子,而不是只存储两个孩子。这极大地增加了每个节点的熵,这意味着访问数据所需的读取次数要少得多。

可以找到更多关于B树的阅读here,这些图片在我看来特别有用,并且可以找到B树上的几个实现here