【问题标题】:Doubly linked list with remove?带有删除的双向链表?
【发布时间】:2014-04-28 11:01:19
【问题描述】:

Rust 中有这种数据类型吗?

irc 上有人告诉我使用 dlist,但它没有 remove 方法,因为它基于 dequeue。虽然算法看起来trivial

【问题讨论】:

    标签: rust


    【解决方案1】:

    标准库中(还没有),但这里有一个带有删除功能的实验性双向链表:https://github.com/contain-rs/linked-list

    DroidLogician 播出了它in this reddit

    【讨论】:

      【解决方案2】:

      您链接到的用于删除的算法需要访问节点本身以获取其prevnext 指针。 Rust 中的 DList API 不会显示这些节点,只会显示存储在节点中的数据,因此像这样的公共 remove 方法没有多大意义。 remove 方法理论上可以接受与 DList 存储的参数类型相同的参数,但不能保证唯一性,实现必须是 O(n)

      DList 集合不是基于出队,但它是 Rust 中实现出队的集合之一。我的猜测是,这就是数据结构的意义所在,因此没有修改列表中间的方法,只有它的两端。

      据我所知,您可以做到这一点的唯一方法是通过一些 3rd 方库(我所知道的没有),或者自己实现它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-03-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-08-27
        • 2018-09-16
        • 1970-01-01
        相关资源
        最近更新 更多