标签: data-structures
我目前正在寻找一个包含所有O(1)操作的数据结构
我能想到的唯一合理易于实现的事情是使用双向链表作为主要数据结构,并保持指向哈希表中列表节点的指针,这将获得所需的渐近行为,但这可能不会是实际运行时中最有效的选项。
我找到了#34;可寻址的优先级队列"在文献中,但它们相当复杂(甚至可能更昂贵)的数据结构,所以我想知道是否有人有更好的建议。到目前为止,似乎没有人为Rust实现这样的东西,这就是为什么我希望它不会变得太复杂。
答案 0 :(得分:0)
我会使用pub struct VecDeque<T>并使用pop_front()代替remove_head()。
pub struct VecDeque<T>
pop_front()
remove_head()
请参阅文档:VecDeque
答案 1 :(得分:0)
Here我用Python实现了一个可寻址二进制堆,没有第三方依赖项。