ImageVerifierCode 换一换
格式:DOCX , 页数:7 ,大小:88.58KB ,
资源ID:6159557      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6159557.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据结构与算法看病排队候诊问题.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据结构与算法看病排队候诊问题.docx

1、数据结构与算法看病排队候诊问题数据结构与算法看病排队候诊问题看病排队候诊问题1.问题描述 医院各科室的医生有限,因此病人到医院看病时必须排队候诊,而病人病情有轻重之分,不能简单地根据先来先服务的原则进行治疗,所以医院根据病人的病情规定了不同的优先级别。医生在诊断治疗时,总是优先选择级别高的病人进行诊治,如果遇到两个级别相同的病人,则选择先来的病人进行诊治。2.设计要求 用队列模拟上述看病排队候诊问题,建立两个队列分别对应两个不同的优先级别,按照从终端读入输入数据的方式进行模拟管理。输入1,表示有新的病人加入队列候诊,根据病情指定其优先级别;输入2,表示医生根据优先级别为病人进行诊治;输入3,表

2、示退出系统。3.数据结构 解决看病排队候诊问题的数据结构,可以采用链式队列来实现。4.分析与实现 根据设计要求,定义两个队列q1和q2,q1对应优先级别低的队列,q2对应优先级别高的队列。当有新的病人要加入队列候诊是,根据用户从键盘终端输入的优先级别,将该病人加入相应的队列中,并同时生成一个对应病人的id编号,需要说明的是,该id编号是按照病人到达医院进行排队的先后顺序依次生成的。医生根据优先级别选择病人进行诊治,因此程序应该首先查看优先级别最高的队列q2,若队列q2不为空,则对队列q2进行出队操作,否则对应队列q1执行出队操作。(1)MyEnQueue() :带有优先级别的队列的入队操作。程

3、序先根据用户从键盘输入的数据来制定病人候诊的优先级别,然后进行入队操作;(2)MyDeQueue() :用来模拟医生根据病人的病(3)(4)(5) q-rear=p; LinkQueue *InitQueue() LinkQueue *q; LinkList *p; p=(LinkList *)malloc(sizeof(LinkList); q=(LinkQueue *)malloc(sizeof(LinkQueue); p-next=NULL; q-front=p; q-rear=q-front; return q;int EmptyQueue(LinkQueue *q) int r=0;

4、 if(q-front=q-rear) r=0; else r=1; return r;DataType OutQueue(LinkQueue *q) LinkList *p; DataType x; if(q-front-next=q-rear) q-front=q-rear; x=q-rear-data; else p=q-front-next; q-front-next=p-next; x=p-data; free(p); return x;void MyEnQueue(LinkQueue *q1,LinkQueue *q2,DataType d,int priority) /重新定义带

5、有优先级别的队列的入队操作 if(priority=1) InQueue(q1,d); else InQueue(q2,d);DataType MyDeQueue(LinkQueue *q1,LinkQueue *q2) /重新定义带有优先权限的队列的出对操作 DataType e; if(EmptyQueue(q2) e=OutQueue(q2); else if(EmptyQueue(q1) e=OutQueue(q1); else e=-1; return e;void main() LinkQueue *q1,*q2; /分别为级别低和高的病人队列 DataType idi=1,ido

6、=-1; /分别为入队和出队病人的id int menu,priority; /分别为用户选择的菜单编号和病人看病的优先级别 q1=InitQueue(); q2=InitQueue(); printf(*欢迎进入排队看病模拟系统*nn); printf(*1:新的病人加入候诊队列 *nn); printf(*2:医生根据优先级别为病人诊治 *nn); printf(*3:退出系统*nn); while(1) printf(-n); printf(*请按菜单编号选择相应的操作(整数):*n); scanf(%d,&menu); if(menu=1) /如果有新的病人则加入队列 printf(请输入病人的优先级别(1或2):); scanf(%d,&priority); printf(该病人的id为:%dn,idi); MyEnQueue(q1,q2,idi,priority); idi+; else if(menu=2) ido=MyDeQueue(q1,q2); if(-1!=ido) printf(当前被诊治的病人id为:%dn,ido); else printf(无诊治病人,队列为空n); else if(menu=3) break; else printf(输入错误,请按菜单编号输入n); 5.结果

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1