版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024城市轨道交通建设特许经营合同
- 2024年度市场营销合同及市场推广策略3篇
- 2024年度灯具代理销售合同2篇
- 2024年度物流运输服务合同(含运输路线与费用)2篇
- 二零二四年版影视制作委托合同3篇
- 2024人力资源经理合同
- 二零二四年度个人与企业间的房产租赁合同2篇
- 2024年全方位免责合同范本适用各场景版B版
- 2024年医疗机构间病患转诊合作合同模板
- 2024年度智能健康监测设备定制开发合同2篇
- 甲醇一书一签
- 设备维护保养计划
- 小学123年级英语看图写话
- 管道保温层厚度的计算方法
- 小区宽带运营商业计划书模板
- 中医操作流程图.
- 电子内窥镜图像处理器产品技术要求
- 第一章体能训练概述PPT
- XX医院内科病房医院感染暴发应急处置演练脚本
- MIL-PRF-13830B镜片表面质量解读与范例
- 艾滋病初筛实验室SOP文件
评论
0/150
提交评论