1 个不稳定发布
0.1.0 | 2022 年 10 月 22 日 |
---|
#2264 在 数据结构
150KB
2.5K SLoC
Rust 特质基于集合
该项目是一组实现了 Collection
特质的集合,允许为该包中的所有数据结构提供一个公共接口。该项目旨在为 Rust 中的所有数据结构提供一个公共接口的证明概念。
摘要
该包包含三个主要特质
Collection
: 定义集合基本操作的特质。FixedSizeCollection
: 定义具有固定大小的集合的基本操作的特质。Iterators
: 封装集合中所有迭代器的特质。
该包包含以下数据结构
Queue
: 基于链表的FIFO
数据结构。Deque
: 基于链表的FIFO
和LIFO
数据结构。CircularDeque
: 基于环形数组的FIFO
和LIFO
数据结构。Stack
: 基于链表的LIFO
数据结构。ArrayStack
: 基于固定大小数组的LIFO
数据结构。BinaryHeap
: 基于二叉堆的PriorityQueue
数据结构。
更多信息,请参阅每个数据结构的单独文档。可以通过运行 cargo doc --open
生成。
安装
从 crates.io
[dependencies]
trait-based-collection = "0.1"
或者,您可以克隆此仓库并从源代码构建它
git clone https://github.com/ferranSanchezLlado/rust-data-structures.git
cd r
cargo install --force --path .
如果出现安装错误,请确保您的工具链是最新的。对于最新版本,请运行
rustup update
示例
use trait_based_collection::{import, Queue};
import!();
fn main() {
let mut q = queue![1, 2, 3, 4, 5];
println!("Queue: {:?}", q);
println!("Queue size: {}", q.len());
println!("Queue is empty: {}", q.is_empty());
q.add(6);
q.remove();
for i in q.iter() {
println!("Queue element: {}", i);
}
}
未来工作
要实现的数据结构
- 二叉搜索树
- AVL 树
- 红黑树
- 斐波那契堆
- HashMap
- HashSet
- 图
- 向量
依赖关系
~1.5MB
~37K SLoC