Rust中有这样的数据类型吗?
有人在irc上告诉我使用dlist,但它没有remove方法,因为它是基于出队的。虽然算法看起来像是trivial
发布于 2015-04-23 02:46:57
不在标准库中(目前还没有),但这里有一个实验性的双向链表,其中包含remove:https://github.com/contain-rs/linked-list
DroidLogician在in this reddit上播出了这段视频。
发布于 2014-05-30 17:00:49
您链接的用于删除的算法需要访问节点本身以获取其prev和next指针。Rust中的Rust不会显示这些节点,只会显示存储在节点中的数据,所以像这样的公共remove方法没有多大意义。理论上,remove方法可以接受与DList存储的参数类型相同的参数,但不能保证唯一性,因此实现必须是O(n)。
DList集合不是基于出队的,但它是Rust中实现出队的集合之一。我的猜测是,这就是数据结构的用途,因此没有任何方法可以修改列表的中间部分,只有列表的两端。
据我所知,你能做到这一点的唯一方法是通过一些第三方库(据我所知没有),或者自己实现它。
https://stackoverflow.com/questions/23339361
复制相似问题