min-heap数据结构c++
时间: 2023-09-04 07:09:35 浏览: 186
最小堆 数据结构 C++
min-heap(最小堆)是一种二叉树结构,满足父节点的值小于或等于其子节点的值。在C++中,可以使用STL库中的priority_queue来实现min-heap。
下面是一个简单的例子:
```c++
#include <iostream>
#include <queue>
using namespace std;
int main() {
priority_queue<int, vector<int>, greater<int>> pq; //创建min-heap
pq.push(3);
pq.push(2);
pq.push(5);
pq.push(1);
while (!pq.empty()) {
cout << pq.top() << " "; //输出最小值
pq.pop(); //弹出最小值
}
return 0;
}
```
在以上代码中,我们创建了一个min-heap,并向其中插入了4个整数。通过不断地弹出min-heap中的最小值,我们可以得到按升序排列的整数序列。
需要注意的是,在priority_queue的定义中,第二个参数vector<int>表示我们使用vector来存储堆中的元素,第三个参数greater<int>表示我们使用greater函数对象来比较元素的大小,从而实现min-heap。如果要实现max-heap,只需要将greater<int>改为less<int>即可。
阅读全文