【问题标题】:Creating a data structure that consists of a linked balanced bst and a doubly linked list创建由链接平衡 bst 和双向链表组成的数据结构
【发布时间】:2013-05-13 13:17:03
【问题描述】:

我正在尝试创建一个数据结构,其中有一个平衡的 BST 和一个双向链表。链表将小于 BST,因此在任何时候都只会包含 BST 中的元素的一个子集。每个节点LL 会指向它在 BST 中对应的节点,如果该节点存在于链表中,则 BST 节点将指向它的 LL 节点,否则将存储 null。

为了创建这个数据结构,我计划将 std::set 用于 BST,将 std::list 用于双向链表.如果我存储对彼此元素迭代器的引用来执行此操作是否可以。该集合是否有可能进行平衡并反过来使链表持有的迭代器无效。方法是否存在任何其他问题?

如何在 C++ 中使用 STL 或任何其他库来执行此操作?

(我想创建这个数据结构来创建 LRU 缓存)

【问题讨论】:

    标签: c++ data-structures stl


    【解决方案1】:

    std::set 迭代器在您在集合中插入新元素时仍然有效,因此当您将迭代器保留在列表中时,这不会导致问题。从集合中删除元素将使指向这些元素的迭代器无效(显然),但其他迭代器仍然有效。

    【讨论】:

      【解决方案2】:

      C++ 中具有双向链表的平衡二叉搜索树

      在这里:

      http://archive.gamedev.net/archive/reference/programming/features/TStorage/index.html

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-11-01
        • 1970-01-01
        • 1970-01-01
        • 2016-02-14
        • 1970-01-01
        • 1970-01-01
        • 2011-12-28
        • 2012-05-20
        相关资源
        最近更新 更多