- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验四队列及其应用#includestdio.h#includestdlib.h#define 日emType int
typedef struct qnode 〃定义记录类型 (
int data;〃节点数据域为data
struct qnode *next;} QNode;typedef struct(
QNode *front,*rear;}QuType;〃在队列qu中查找一个节点,其数据域的值为Num,找到返回L否那么返回-1 int QuSearch(QuType *qu,int Num)(
QNode *p=qu-front;
〃循环查找节点p, p的数据域的值为Numwhile( p p-data != Num ) p=p-next;
〃找到数据域值为Num的节点,返回1
if( p )// if(p-data = = no) ? ?
return 1; elsereturn -1;}〃打印队列中所有的元素
void QuDisplay(QuType *qu) (
QNode *p=qu-front;
int i=l;
if(p 二二 NULL) (prin 甘(”****** 没有排队者 ******\rT);
)
while(p != NULL) (print.第%d 个排队者为:%5d\rT,i++,p-data);p=p-next;〃入队操作,在队列qu中插入节点,该节点的数据域的值为Num int EnQueue(QuType *qu,int Num)
(
QNode *q=(QNode *)malloc(sizeof(QNode));
if(q = = NULL)return -1;
〃节点q为即将插入的新节点,为其数据域赋值为Num,指针域赋值为NULL q-data = Num;
q-next = NULL;
if( qu-rear == NULL ) //插入前队列中没有节点,如何插入新节点 (qu-front = q;qu-rear = q;
)
else //插入前队列中有假设干节点,如何插入新节点
(qu-rear-next = q;qu-rear = q;
) return 1;}〃出队操作,删除队列中的队头节点,并用Num保存删除节点的数据int OutQueue(QuType *qu,int *Num)
(
QNode *p=qu-front;
〃判断队列是否为空,假设队列为空,那么返回
if( p == NULL)return -1;
else 〃假设队列非空,那么删除队头节点 {〃使用Num获取队头节点数据域的值*Num = p-data;〃队列中只有一个节点P,删除方法?
if( p -- qu -rear)qu-front = qu-rear = NULL;
〃队列中有多于1个节点的时候,删除队头节点p的方法? elsequ-front = p-next;free(p);return 1;
)〃判空队列,假设为空返回L否那么返回-1 int QueueEmp(QuType *qu)(
〃队列为空的条件?
if( qu-front == NULL ) return 1;
elsereturn -1;}void main(void)
(
int sel,no,temp,flag = l;
QuType *qu;
qu=(QuType *)malloc(sizeof(QuType));
qu-front=qu-rear=NULL;
while(l 二二 flag)
(
printf(\nl:排队2 :就诊3 :查看队列4 :不再排队,余下就诊5 :下班 请选择〉”);scanf(%d,sel);
switch(sel) (
printf(输入病历号:);scanf(%d,no);
whileQ二二QuSearch(qu,no)) 〃输入后需要判断是否重复 (
printf(”输入病历号重复,请重新输入); scanf(%d,no);}EnQueue(qu,no);break;
if( OutQueue(qu,temp) == -1)printf(”****** 没有排队的病人******\rT);else
printf(”病历号为%d的请就诊\n,temp);break;QuDisplay(qu);
break;if(QueueEmp(qu)==l)printf(****** 没有排队的病人******\rT);
else(printf(”病人按如下顺序就诊\n);QuDisplay(qu);
}flag = 0;break;
printf(已下班,请排队的病人明天就医! \n);flag=0;break;default:
break;}
)
getchar();)
您可能关注的文档
最近下载
- 一例重症肺炎的循证个案护理.docx VIP
- 2025年部编人教版(统编版新教材)小学一年级上册道德与法治教学计划及进度表.docx
- 设计高效培训方案的培训课件.pptx VIP
- 老年群体数字融入的表现、阻碍及措施.pdf VIP
- DB37_T5225-2022:民用建筑太阳能热水系统一体化应用技术规程.pdf VIP
- 中医大期末考试—解剖期末复习重点.pdf VIP
- 燕京啤酒厂技改工程的环境的影响评价 素材.ppt VIP
- 土木工程施工组织设计案例加实例.pdf VIP
- 中国外汇交易中心招聘笔试题库2024.pdf
- 2025年部编人教版(统编版)小学六年级上册道德与法治教学计划及进度表.docx
原创力文档


文档评论(0)