数据结构实验4队列.doc

上传人:b****1 文档编号:238747 上传时间:2022-10-07 格式:DOC 页数:6 大小:18KB
下载 相关 举报
数据结构实验4队列.doc_第1页
第1页 / 共6页
数据结构实验4队列.doc_第2页
第2页 / 共6页
数据结构实验4队列.doc_第3页
第3页 / 共6页
数据结构实验4队列.doc_第4页
第4页 / 共6页
数据结构实验4队列.doc_第5页
第5页 / 共6页
点击查看更多>>
下载资源
资源描述

数据结构实验4队列.doc

《数据结构实验4队列.doc》由会员分享,可在线阅读,更多相关《数据结构实验4队列.doc(6页珍藏版)》请在冰豆网上搜索。

数据结构实验4队列.doc

实验4病人看病模拟程序

【问题描述】

编写一个程序,反映病人到医院看病,排队看医生的情况。

在病人排队的过程中,主要重复两件事:

(1)病人到达诊室,将病历本交给护士,排到等待队列中候诊。

(2)护士从等待队列中取出下一位病人的病历,该病人进入诊室就诊。

要求模拟病人等待就诊这一过程。

程序采用菜单方式,其选项及功能说明如下:

(1)排队――输入排队病人的病历号,加入病人排队队列中。

(2)就诊――病人排队队列中最前面的病人就诊,并将其从队列中删除;

(3)查看排队――从对首到队尾列出所有的排队病人的病历号;

(4)不再排队,余下一次就诊――从对首到队尾列出所有的排队病人的病历号,并退出运行;

(5)下班――退出运行;

#include

#include

typedefstructqnode

{intdata;

structqnode*next;

}QNode;//链队结点类型

typedefstruct

{

QNode*front,*rear;

}QuType;//链队类型

voidseedoctor()//模拟病人看病的过程

{

intsel,flag=1,find,no;

QuType*qu;

QNode*p;

qu=(QuType*)malloc(sizeof(QuType));//创建空队

qu->front=qu->rear=NULL;

while(flag==1)

{

printf("1:

排队2:

就诊3:

查看排队4:

不再排队,余下依次就诊5:

下班请选择:

");

scanf("%d",&sel);

switch(sel)

{

case1:

printf(">>输入病历号:

");

do

{scanf("%d",&no);

find=0;

p=qu->front;

while(p!

=NULL&&!

find)

{if(p->data==no)

find=1;

else

p=p->next;

}

if(find)

printf(">>输入的病历号重复,重新输入:

");

}while(find==1);

p=(QNode*)malloc(sizeof(QNode));//创建结点

p->data=no;p->next=NULL;

if(qu->rear==NULL)//第一个病人排队

{

qu->front=qu->rear=p;

}

else

{qu->rear->next=p;

qu->rear=p;//将*p结点入队

}

break;

case2:

if(qu->front==NULL)//队空

printf(">>没有排队的病人!

\n");

else

{p=qu->front;

printf(">>病人%d就诊\n",p->data);

if(qu->rear==p)//只有一个病人排队的情况

{

qu->front=qu->rear=NULL;

}

else

qu->front=p->next;

free(p);

}

break;

case3:

if(qu->front==NULL)//队空

printf(">>没有排队的病人!

\n");

else//队不空

{p=qu->front;

printf(">>排队病人:

");

while(p!

=NULL)

{printf("%d",p->data);

p=p->next;

}

printf("\n");

}

break;

case4:

if(qu->front==NULL)//队空

printf(">>没有排队的病人!

\n");

else//队不空

{p=qu->front;

printf(">>排队病人:

");

while(p!

=NULL)

{printf("%d",p->data);

p=p->next;

}

printf("\n");

}

flag=0;//退出

break;

case5:

if(qu->front!

=NULL)//队不空

printf(">>请排队的病人明天就医!

\n");

flag=0;

break;

}

}

}

voidmain()

{seedoctor();

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 小学作文

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

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