#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<algorithm>//算法支持头
#include<queue>
#include<functional>//greater与less
//建立一个优先级小顶堆队列
priority_queue<int,vector<int>,greater<int>> pq;//小顶堆greater 大顶堆less
//里面存储的是int类型的优先级小顶堆队列,用来提供存储数据的容器是vector,排序方式是greater
//你们对面向过程太陌生,导致你们有思想没办法一步一步实现,但是有了面向对象,
//而且官方给你提提供了一个强大的标准库STL,叫暴殄天物
int n = 0;
using namespace std;
int main()
{
int val;
while (!pq.empty())
pq.pop();//清零操作
cin >> val;
for (int i = 0; i <n; i++)
{
cin >> val;
pq.push(val);
}
while (pq.size() > 1)
{
int x1 = pq.top(); //取出第一个最小值
pq.pop();//pop丢掉第一个最小值
int x2 = pq.top();//取出第二个最小值
pq.pop();//pop丢掉第二个最小值
pq.push(x1 + x2);//更新
}
if (pq.size() == 1)
cout << pq.top() << endl;
system("pause");
}
哈夫曼树简便版
猜你喜欢
转载自blog.csdn.net/weixin_40823740/article/details/103114367
今日推荐
周排行