#priority-queue #queue #priority #heap #binary-heap

prio-queue

使用Vec存储的堆实现的简单优先队列

2个版本

0.1.1 2021年6月12日
0.1.0 2021年6月12日

2264数据结构

MIT 许可证

19KB
412

优先队列

Rust中以二叉堆形式存储的简单优先队列,存储在 Vec<T> 中。

此实现旨在比标准库提供的实现更简单、更灵活。它依赖于一个给定的函数来决定元素之间的优先级。允许您有或没有一致性检查地访问底层 Vec<T>

示例

let mut queue = PrioQueue::new(|l, r| l < r);
queue.push(42);
queue.push(32);
queue.push(64);
assert_eq!(queue.pop(), Some(32));
assert_eq!(queue.pop(), Some(42));
assert_eq!(queue.pop(), Some(64));
assert_eq!(queue.pop(), None);

显示

              ╭───────────────9───────────────╮             
      ╭───────26──────╮               ╭───────27──────╮     
  ╭───45──╮       ╭───34──╮       ╭───35──╮       ╭───37──╮ 
╭─59╮   ╭─52╮   ╭─48      57      67      39      80      73
77  61  64  74  96                                          

无运行时依赖