堆--一种可被视为完全二叉树的结构,实现有多种方法
(一) 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.一个经典的栗子:合并果子
题目描述
在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。多多决定把所有的果子