堆--一种可被视为完全二叉树的结构,实现有多种方法
(一) C++ STL - 优先队列实现
1.首先写好队列头文件
#include<queue>
2.定义一个int型、值小的数优先级高(先出队列)的队列-----小根堆
*最后的'<int>' 与‘>’间注意留空格
priority_queue<int, vector<int>, greater<int> > a;
大根堆的定义:priority_queue<int, vector<int> > a;
//priority_queue<int, vector<int>, less<int> > a;
往堆中加一个元素:
a.push(x);
弹出堆顶元素:
a.pop();
访问堆顶元素:
a.top();
堆的大小:a.size()
判断堆是否为空:a.empty();
4.一个经典的栗子:合并果子
C++ 实现小根堆与优先队列

本文介绍了如何使用C++ STL中的优先队列实现堆,并通过一个合并果子的问题展示了堆的运用。文章详细解释了堆的性质,包括小根堆和大根堆的定义,以及put()和get()函数的工作原理。最后,作者提供了2018年重构的小根堆代码示例。
最低0.47元/天 解锁文章
3833

被折叠的 条评论
为什么被折叠?



