【发布时间】:2017-09-07 04:32:31
【问题描述】:
使用这个简单的二叉堆示例。我将如何使用 C++ 代码实现这个数据结构。
1
/ \
3 6
/\ /\
5 9 8
除了能够轻松访问数组中的最大值或最小值之外,这种数据结构还有什么用处?
示例来自以下链接:http://www.algolist.net/Data_structures/Binary_heap
【问题讨论】:
-
std::make_heap是我会做的,虽然我怀疑你的作业需要 you 的实现;不是标准库。 -
@WhozCriag。我没有作业,我从以下网站得到这个例子:algolist.net/Data_structures/Binary_heap我是自学代码。我实际上是一名研究生化学工程师
-
那正是我会怎么做。有太多其他事情要做,以致于费心重新发明精心打造的轮子。关于有用性,priority-queue 是堆的常用用法。它们还用于许多最适合的算法中以进行最接近的大小调整(例如考虑内存管理器)。
-
您可以在普通数组中构建堆。第一个元素是根,接下来是级别 1,接下来是四个级别 2,等等。
-
@stark,谢谢我已经做到了,但并没有真正看到像这样构造一个数组的意义
标签: c++ data-structures binary-heap