#linked-list #stack #queue

linked_lists_rs

使用链表在Rust中实现各种数据结构

3个版本

0.1.2 2022年8月26日
0.1.1 2022年8月21日
0.1.0 2022年8月21日

#2428数据结构

MIT 许可证

26KB
486

Rust 链表

这个crate旨在提供使用链表作为其底层数据结构的Rust中几种数据结构的实现

目前实现的数据结构包括

  • 函数式列表
  • 队列
  • 双向链表(待办事项)

为什么是链表?

我讨厌链表。非常讨厌。链表是可怕的数据结构。99%的时候你应该只用Vec(数组栈),而在剩下的1%的其他时间你应该使用VecDeque(数组双端队列)。这些数据结构在大多数工作负载中明显优于链表,因为它们更少地分配,内存开销更低,提供真正的随机访问和缓存局部性。

链表就像字典树一样,是一种很窄且模糊的数据结构。很少有人会反对我声称字典树是一个窄结构,普通程序员在整个职业生涯中可能永远不需要学习。然而,链表却有着一些奇怪的名声。我们教每一个本科生如何编写链表。这是C++中的列表!

作为社区,我们都应该拒绝将链表作为一个“标准”数据结构。它是一个很好的数据结构,有几种非常好的用例,但那些用例是例外,而不是常见。

待办事项链表

  • 函数式列表
  • 队列
  • 双向链表
  • 测试
  • 示例
  • 文档
  • 遵循 Rust Api 指南

无运行时依赖