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

已删除 binary-heap-plus2

std::collections::BinaryHeap的增强版本,支持最大堆、最小堆和自定义顺序堆

0.3.2 2020年9月22日
0.3.1 2020年9月21日

#22 in #binary-heap

MIT 许可协议

64KB
776 代码行

binary-heap-plus2

Rust

这是一个对binary-heap-plus的分支,添加了一个新的泛型构造函数BinaryHeap::from_vec_cmp_rebuild().

如果没有特殊要求,建议使用binary-heap.

对Rust的std::collections::BinaryHeap的增强。

它支持以下堆,并保持向后兼容。

  • 最大堆
    • 使用BinaryHeap::new()::with_capacity()
  • 最小堆
    • 使用BinaryHeap::new_min()::with_capacity_min()
  • 通过闭包排序的堆
    • 使用BinaryHeap::new_by()::with_capacity_by()
  • 通过闭包生成的键排序的堆
    • 使用BinaryHeap::new_by_key()::with_capacity_by_key()

其他值得注意的新增方法包括

  • BinaryHeap::from_vec_cmp()BinaryHeap::from_vec()以及BinaryHeap::from_vec_cmp_rebuild()为更通用的构造提供了支持。
  • .into_iter_sorted().into_iter()的一个不那么令人惊讶的版本。实现是从std回滚过去的。

MSRV (最低支持Rust版本)

该软件包需要Rust 1.31.1或更高版本。

变更

请参阅CHANGELOG.md。 https://github.com/sekineh/binary-heap-plus-rs/blob/master/CHANGELOG.md

感谢

  • 我从Pre-RFC线程[1]中收到了许多宝贵的反馈。
    • 当前的设计基于@ExpHP的建议,可以在稳定的编译器上编译。
    • DDOtten、steven099、CAD97、ExpHP、scottmcm、Nemo157和gnzlbg,感谢你们对设计的关注!
  • @ulysseB向我提交了第一个pull请求!
  • @inesseq贡献了serde1功能。

参考

请参阅以下讨论,了解该软件包的背景

依赖

~190KB