全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
堆实现的优先队列模板Posted on2010-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 25500typedefstructRedType intleft, right;intweight;boolfriendoperator b.weight;Edge;classpriority_queue private:RedType rMAXN;intlength;voidheap_adjust(ints, intm) RedType rc = rs;for(intj = s 1; j = m; j = 1) if(j m & rj rj+1) j+;if(!(rc 1; i 0; i-) heap_adjust(i, length);voidset_size(intlength) this-length = length;voidset_value(intid, RedType value) rid = value;voidheap_sort() for(inti = length; i 1; i-) RedType tmp = r1;r1 = ri;ri = tmp;heap_adjust(1, i - 1);boolis_heap() intlen = length 1 - 1, j;if(len 1) if(length = 1 | (!(r1 rlength) & !(r1 rlength - 1)returntrue;returnfalse;for(inti = 1; i = len; i+) j = i 1;if(rj rj + 1) j+;if(ri 1;for(intj = length; j 1; j = 1) if(!(rs = 1;voidpop() RedType tmp = r1;r1 = rlength;rlength = tmp;heap_adjust(1, -length);RedType top() returnr1; intsize() returnlength;boolempty() if(length 根节点不断做heap_adjust(),使之构成一个初始堆。-n / 2 * log(n)heap_sort() 相当于重复n次pop()操作,但length不改变。-n * log(n)is_heap() 判断是否构成堆,堆大小小于4时由外面的if判定,避免for
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 健康管理与养生科学饮食与运动方案
- 化工原料分析在面试中的重要性
- 全科医师职业规划与面试技巧实战经验与心得体会
- 全过程造价咨询顾问设计阶段造价控制要点
- 洛伐他汀对血管内皮细胞保护作用的探讨-洞察及研究
- 可信计算的可信性扩展与应用延伸-洞察及研究
- 以爱为底色的温暖教育体系构建
- 进修生入科宣教
- 空间展示设计经典案例
- 室内分布设计要点与实施规范
- 2025年高考语文作文专项第06讲 高考新材料作文(练习)(解析版)
- 超市熟食操作管理制度
- 医疗行业省区经理竞聘
- 医疗机构停空调应急预案
- 2025年中国市政工程西南设计研究总院有限公司招聘笔试参考题库附带答案详解
- 商业银行信息科技风险现场检查指南 (一)
- 《电力安全事故应急》课件
- 2025年重庆轨道交通集团招聘笔试参考题库含答案解析
- 《国家综合性消防救援队伍队列条令(试行)》题库
- DB36T 1593-2022 高速公路日常养护技术规范
- 学前幼教科学学前中班中班下-中班科学活动:土豆的生长过程
评论
0/150
提交评论