Rust中有这样的数据类型吗?
irc上的某个人告诉我使用dlist但是它没有删除方法,因为它基于dequeue。虽然算法似乎trivial
答案 0 :(得分:1)
不在标准库(尚未)中,但这里是一个带有删除的实验性双向链表:https://github.com/contain-rs/linked-list
DroidLogician播放了它in this reddit。
答案 1 :(得分:0)
您链接到要删除的算法需要访问节点本身以获取其prev
和next
指针。 Rust中的DList
API不会显示这些节点,只会显示存储在节点中的数据,因此像这样的公共remove
方法没有多大意义。 remove
方法理论上可以接受与DList
存储的类型相同的参数,但不保证唯一性,而实现必须是O(n)
。
DList
集合不是基于出列的,但它是Rust中实现出列的集合之一。我的猜测是这就是数据结构的意思,因此没有方法可以修改列表的中间部分,只修改它的两端。
据我所知,你可以做到这一点的唯一方法是通过一些第三方图书馆(我不知道),或者自己实施。