版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、题目:优先队列与堆问题描述 假设某医生看病人的顺序是由病人的病情严重程度来决定。护士按照所有病人来医院的时间顺序给病人编号ID,依次为1,2,3,n;并且根据病人的病情严重程度设置Priority值,病越重,Priority的值越小。当医生开始工作时,护士根据病人的Priority值,由小到大依次安排病人看病。试为护士编写程序安排病人看病的先后次序。 基本要求 (1) 利用最小值堆实现一个优先队列。 (2) 对于优先队列应该支持如下操作:初始化队列的init操作;获得队列中元素个数的size操作;判定队列是否为空的empty操作;获得队列中最优先的元素的值的top操作;向队列中插入一个元素的p
2、ush操作;删除队列中最优先的元素的pop操作。 (3) 利用优先队列存入所有病人的信息(编号和病情严重程度)。最后利用优先队列获得病人看病的次序。 测试数据:输入:1 15 2 3 3 5 4 20 5 10 1 1 输出 :2 3 5 1 4 实现提示 (1) 最小值堆采用数组作为物理存储结构,每个元素是一个结构体变量,包含编号ID和病情严重程度Priority值。 (2) 用户录入1 1表示输入结束。 实验分析:优先级队列是这样的一种数据结构,对它的访问或者删除操作只能对集合中通过指定优先级方法得出的最高优先级元素进行。优先级队列是公平的,对于任何两个具有相同优先级的元素,首先被删除的是
3、那个在队列中存在时间最长的元素。如果元素是Int类型且按照其排列的顺序进行比较,那么具有最高优先级的元素就是优先级队列中相应的int值最小的那个元素。如果元素是Int类型,但是比较方法与原排列顺序相反,那么具有最高优先级的元素就是优先级队列中相应的int值最大的元素。到底是最小的还是最大的元素优先。实质上堆可用来实现优先级队列,或者说堆就是一种优先级队列。由于堆的添加元素与删除元素时都会破坏堆结构,所以添加与删除进都要进行结构调整。一般普通的队列添加是在最后加入,但优先级队列却不一定添加到最后,他会按照优先级算法把它插入到队列当中去,出队时还是从第一个(也即最小元素,优先级最高)开始,即取根元
4、素,这样保证了队列中优先级高的先服务,而不是先来先服务了。Heap类是对接口的一种高效实现。堆是一种完全二叉树。由于使用基于数组的完全二叉树的表示,可以根据子节点的索引快速计算出你父节点的索引,反之亦然,所以,使用数组来表示堆,它是利用了数组可以根据给定索引随机访问元素的特性。实验结果:实验代码:#include using namespace std; class HEAP /定义堆 public: int IDnum; int priority; void operator=(HEAP& temp)IDnum=temp.IDnum;priority=temp.priority; ; voi
5、d sift(HEAP* a,int i,int n) /筛选int j; HEAP t; t=ai; while(j=2*i+1)n) if(jn-1&aj.priorityaj+1.priority) j+; if(t.priority=0;i-) sift(a,i,n); for(i=n-1;i 0;i-) p=a0; a0=ai; ai=p; sift(a,0,i); void push(HEAP* a,int& num,int IDnum,int priority) /将元素压入栈 anum.IDnum=IDnum; anum+.priority=priority; void pop(HEAP* a,int& num,int& ID) /出栈 ID=a0.IDnum; for(int i=0;i IDnum priority; if(IDnum=-1) break; push(h,num,IDnum,priority
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026湖南湘江研究院有限责任公司招聘7人备考题库附参考答案详解(a卷)
- 雨课堂学堂在线学堂云《食品工程原理(合肥工业)》单元测试考核答案
- 某家具厂生产流程控制规范
- 4.3 环境与健康 课件-高一上学期体育与健康人教版必修全一册
- 单用途预付卡服务合同
- 2026重庆市永川区永昌街道卧龙凼社区招聘全日制公益性岗位1人备考题库及参考答案详解(培优a卷)
- 2026陕西省荣复军人第一医院招聘备考题库带答案详解(培优a卷)
- 2026青海海西州乌兰县人民法院临聘财务辅助岗招聘1人备考题库及答案详解【名校卷】
- 2026湖南永州市江永县城乡农贸市场服务有限公司招聘5人备考题库(第二次)及参考答案详解ab卷
- 2026济南能源集团春季校园招聘11人备考题库及一套答案详解
- GJB939A-2022外购器材的质量管理
- 2025年游乐设施检验员资格考试试卷游乐设施检验员实操案例分析试题
- 课本剧创作中的跨学科融合与创新
- 【MOOC】中医与辨证-暨南大学 中国大学慕课MOOC答案
- JJF 1049-2024温度传感器动态响应校准规范
- 起重机械安装维修程序文件及表格-符合TSG 07-2019特种设备质量保证管理体系
- 年产330万吨生铁(其中炼钢生铁78%,铸造生铁22%)的高炉炼铁车间工艺设计
- 110kV-GIS安装专项方案内容
- AQ-T 2081-2023 金属非金属矿山在用带式输送机安全检测检验规范
- 犹太复国主义
- 销售培训:利用故事营造销售情境
评论
0/150
提交评论