创建一个由链接平衡最佳表和双链表组成的数据结构

Creating a data structure that consists of a linked balanced bst and a doubly linked list

本文关键字:链表 数据结构 最佳 平衡 一个 链接 创建      更新时间:2023-10-16

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

为了创建这个数据结构,我计划使用std::set for BST和std::list用于双链表。如果我将引用存储到彼此的元素迭代器中,这样做是否合适。set是否有可能进行平衡并返回链表持有的迭代器失效?还有其他问题吗?

如何在c++中使用STL或任何其他库来完成此操作?

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

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

c++中的双链表平衡二叉搜索树

:

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