Advertisement

患者到医院看病事件模拟

阅读量:

本以为会很难,结果却发现……

嗯,还是别说了吧,这里有小秘密,自己领会去吧~!

代码:

#include <stdio.h> #include <string.h> #include <stdlib.h> #define MAXQSIZE 10000 定义一个队列结构体:SqQueue类型 struct包括base、front和rear三个成员变量 void InitQueue(&Q SqQueue) { 为队列分配内存空间:(int*)malloc(MAXQSIZE * sizeof(int)) 如果无法分配内存:if(!成功) { 输出提示信息并终止程序 exit(0); } 初始化队头和队尾指针:Q.front = Q.rear = 0; } 添加元素到队列末尾的操作函数:void EnQueue(&Q SqQueue, int 数字) { 判断是否已满条件:if((Q.rear + 1) % MAXQSIZE == Q.front) { 输出提示信息并终止程序 puts("栈满"); exit(0); } 将数字存入队列:Q.base[Q.rear] = 数字; 然后更新 rear 指针:Q.rear = (Q.rear + 1) % MAXQSIZE; } 从队列头部取出元素的操作函数:int DeQueue(&&Number int SqQueue Q) { 取出前一个元素的内容到 Number: Number = Q.base[Q.front]; 更新 front 指针: Q.front = (Q.front + 1) % MAXQSIZE; 返回取出的数值 Number; } 主函数部分开始执行: main()函数初始化了一个 SqQueue类型的变量 Q;调用InitQueue函数初始化队列;然后进入循环等待输入字符 ch;当输入字符为'A'或'a'时读取数值并入队;当字符为'N'或'n'时判断是否为空或者出队并打印结果;当字符为'S'或's'时打印当前所有未出队的病人编号;其他情况输出错误提示信息;整个流程结束返回主函数入口处退出程序。

全部评论 (0)

还没有任何评论哟~