博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c++ 实现哈夫曼树中遇见的问题
阅读量:4679 次
发布时间:2019-06-09

本文共 517 字,大约阅读时间需要 1 分钟。

为了提高效率求得 叶子 节点中权值最小的两个元素,我们需要使用堆数据结构它可以以O(logn)的复杂度

取得n个元素中的最小元素。为了绕过堆的实现,我们可以使用标准模板库中相应的标准模板—优先队列。

在使用队列前,需要做相应的预处理

#include <queue>

using namespace std;

priority_queue<int> Q;  // 建立一个保存元素为int 的堆Q(注意:这样建立的堆默认为大根堆)

//使用如下语句建立一个小根堆

priority_queue<int vector<int>,greater<int>> (注意:这样的写法是错的,最后两个'>'之间要有空格)

priority_queue<int vector<int>,greater<int> >  //为如果是两个连起来的>>蠢萌的编译器会把它认成输出符cout>>这个符号的

堆的操作如下:

Q.push()

int a=Q.top()   //取出堆顶元素放在Q中

Q.pop()  //弹出堆顶元素,取出后堆自动调整为一个小根堆

 

转载于:https://www.cnblogs.com/houchen/p/9017107.html

你可能感兴趣的文章
C中int8_t、int16_t、int32_t、int64_t、uint8_t、size_t、ssize_t区别
查看>>
sample_code
查看>>
28天成交了104单,多亏了这5个逼单方法
查看>>
Linux常用快捷键和基本命令
查看>>
java
查看>>
[laravel] Laravel - composer install
查看>>
20190218日记
查看>>
python day2 模块初识、pyc定义
查看>>
一道算法作业题(续)
查看>>
Machine Learning From Scratch-从头开始机器学习
查看>>
基础数据结构
查看>>
python url库学习
查看>>
找“水王”
查看>>
Advanced Views and URLconfs(The Definitive Guild to Django)
查看>>
CodeForces 132C 一道简单 dp
查看>>
018-伸展树
查看>>
FPM打包工具
查看>>
JDK版本不兼容问题之:一台机器安装多个版本的JDK
查看>>
2016年 前端学习网站
查看>>
20145302张薇《Java程序设计》第八周学习总结
查看>>