C++ 二叉堆的实现
我需要一个作为二叉树实现的最小堆。 真正快速访问最小节点和插入排序。
stl 或 boost 中是否有一个很好的实现,任何人都可以指点我?
I need a min-heap implemented as a binary tree. Really fast access to the minimum node and insertion sort.
Is there a good implementation in stl or boost that anyone can point me too?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我认为 std::priority_queue 就是您正在寻找的。
I think std::priority_queue is what you are looking for.
请参阅标准 C++ 算法 make_heap()。
See the Standard C++ algorithm make_heap().
STL 没有(二叉)树的概念,但有一些方法可以帮助维护数据集中的堆属性,例如 std::make_heap、std::sort_heap、std::push_heap 等。
The STL doesn't have a concept of (binary) trees, but there are methods that facilitate in maintaining heap properties in a dataset, such as std::make_heap, std::sort_heap, std::push_heap et cetera.