- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
堆实现的优先队列模板
Posted on?2010-12-23 21:25?¥忘%风?阅读(1308) 评论(0)?编辑?收藏?
下面是自己手写的优先队列模板(默认是大顶堆,可通过重载小于号改变)
用法说明如下:
1)priority_queue部分(用法参照stl)
c-free库函数帮助里提供的priority_queue用法说明如下:
C++优先队列类似队列,但是在这个数据结构中的元素按照一定的断言排列有序。
empty() 如果优先队列为空,则返回真 pop() 删除第一个元素 push() 加入一个元素 size() 返回优先队列中拥有的元素的个数 top() 返回优先队列中有最高优先级的元素 2)堆的基本堆操作部分。
用法如下:
set_size() 设置堆的大小 set_value() 设置堆中第id个元素的值 creat_heap() 创建一个初始堆 heap_sort() 堆排序,默认从小到大排,可通过重载小于号实现按指定规则排序 is_heap() 判断是否构成一个堆 模板如下:
?
#define MAXN 25500
typedef?struct?RedType {
????int?left, right;
????int?weight;
????bool?friend?operator (const?RedType a, const?RedType b) {
????????return?a.weight b.weight;
????}
}Edge;
?????
class?priority_queue {
private?:
????RedType r[MAXN];
????int?length;
?????
????void?heap_adjust(int?s, int?m) {
????????RedType rc = r[s];
????????for?(int?j = s 1; j = m; j = 1) {
????????????if?(j m r[j] r[j+1]) j++;
????????????if?(!(rc r[j])) break;
????????????r[s] = r[j]; s = j;
????????}
????????r[s] = rc;
????}
?????
public?:
????priority_queue() {
????????length = 0;
????}
????/*===========下面是堆操作部分,建堆,堆排等=============*/
?????
????void?creat_heap() {
????????for?(int?i = length 1; i 0; i--) {
????????????heap_adjust(i, length);
????????}
????}
?????
????void?set_size(int?length) {
????????this-length = length;
????}
?????
????void?set_value(int?id, RedType value) {
????????r[id] = value;
????}
?????
????void?heap_sort() {
????????for?(int?i = length; i 1; i--) {
????????????RedType tmp = r[1];
????????????r[1] = r[i];
????????????r[i] = tmp;
????????????heap_adjust(1, i - 1);
????????}
????}
?????
????bool?is_heap() {
????????int?len = length 1 - 1, j;
????????if?(len 1) {
????????????if?(length == 1 || (!(r[1] r[length])
???????????? !(r[1] r[length - 1])))
????????????????return?true;
????????????return?false;
????????}
????????for?(int?i = 1; i = len; i++) {
????????????j = i 1;
????????????if?(r[j] r[j + 1]) j++;
????????????if?(r[i] r[j]) return?false;
????????}
????????return?true;
您可能关注的文档
- 培训讲师的四个角色要求.doc
- 培训课热身小游戏20个.docx
- 培训需求调查表(主管以上).docx
- 基于51单片机的自动往返小车.doc
- 基于ArcMap的地图符号制作.doc
- 基于AT89C52单片机的LED显示屏设计.doc
- 基于B2C的网上商城系统论文.doc
- 基于CPLD的片内振荡器设计.doc
- 基于DS18B20的温室大棚风机控制系统设计.doc
- 基于DSP的MP3播放器设计.doc
- 2024高考物理一轮复习规范演练7共点力的平衡含解析新人教版.doc
- 高中语文第5课苏轼词两首学案3新人教版必修4.doc
- 2024_2025学年高中英语课时分层作业9Unit3LifeinthefutureSectionⅢⅣ含解析新人教版必修5.doc
- 2024_2025学年新教材高中英语模块素养检测含解析译林版必修第一册.doc
- 2024_2025学年新教材高中英语单元综合检测5含解析外研版选择性必修第一册.doc
- 2024高考政治一轮复习第1单元生活与消费第三课多彩的消费练习含解析新人教版必修1.doc
- 2024_2025学年新教材高中英语WELCOMEUNITSectionⅡReadingandThi.doc
- 2024_2025学年高中历史专题九当今世界政治格局的多极化趋势测评含解析人民版必修1.docx
- 2024高考生物一轮复习第9单元生物与环境第29讲生态系统的结构和功能教案.docx
- 2024_2025学年新教材高中英语UNIT5LANGUAGESAROUNDTHEWORLDSect.doc
最近下载
- 2023-2024学年七年级上册语文期末专项热点必刷100题专题11记叙文阅读(含答案).docx VIP
- 《隧道施工质量监理要点》.docx VIP
- 《Java语言程序设计基础教程》习题解答26752指导.doc
- 医务管理系统建设方案.doc VIP
- 小学英语二年级上册英语课件-UNIT FOUR THERE ARE MANY ANIMALS lesson 15 北京版.pptx VIP
- 苏教版数学五年级上册小数除以小数(课件).pptx
- 病房(医嘱)管理系统.doc
- 学前儿童急症救助与突发事件应对 22 模块四任务4 火灾的应急处理与预防.pptx VIP
- 光伏项目高处坠落的风险点及控制措施(A).pptx VIP
- 急性脊髓炎的护理ppt课件.pptx
文档评论(0)