【问题标题】:Implementing Tree Structure in disk memory在磁盘内存中实现树形结构
【发布时间】:2015-09-09 17:11:22
【问题描述】:

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

【问题讨论】:

  • 您使用哪种语言?
  • 您的问题令人困惑。您是否希望就地修改文本文件?你能给我们举个例子来说明你想要完成的事情吗?
  • @JimMischel 我正在尝试了解搜索树的实际应用。只是想知道如何实现一个可以在 RAM 和磁盘内存之间来回推送的树结构。 (如果我对方法的理解有误,请纠正我)。

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


【解决方案1】:

在磁盘上使用树数据结构的主要实际困难之一是,对于幼稚的二叉树,数据将“相距甚远”,并且尝试访问此数据可能会导致thrashing,因为您的硬盘驱动器会不断尝试访问磁盘上的不同位置。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-03
    • 1970-01-01
    • 2017-03-30
    • 1970-01-01
    • 2011-01-09
    • 2010-12-28
    • 1970-01-01
    相关资源
    最近更新 更多