#include <stdio.h>
#include <malloc.h>
#include <string.h>
typedef struct Lnode
{ char data[10]; //存放患者姓名
struct Lnode *next; //指针域
} QType; //链队结点类型
typedef struct
{ QType *front; //指向队头病人结点
QType *rear; //指向队尾病人结点
} LQueue; //病人链队类型
//---初始化队列运算算法---
void InitQueue(LQueue *&lq)
{ lq=(LQueue *)malloc(sizeof(LQueue));
lq->rear=lq->front=NULL; //初始时队头和队尾指针均为空
}
//----销毁链队----
void DestroyQueue(LQueue *&lq)
{ QType *pre=lq->front,*p;
if (pre!=NULL) //非空队的情况
{ if (pre==lq->rear) //只有一个数据结点的情况
free(pre); //释放*pre结点
else //有两个或多个数据结点的情况
{ p=pre->next;
while (p!=NULL)
{ free(pre); //释放*pre结点
pre=p; p=p->next; //pre、p同步后移
}
free(pre); //释放尾结点
}
free(lq); //释放链队结点
}
}
//----进队运算算法----
void EnQueue(LQueue *&lq,char x[])
{ QType *s;
s=(QType *)malloc(sizeof(QType)); //创建新结点,插入到链队的末尾
strcpy(s->data,x);s->next=NULL;
if (lq->front==NULL) //原队为空队的情况
lq->rear=lq->front=s; //front和rear均指向*s结点
else //原队不为空队
C++设计一个程序,反映病人到医院看病、排队看医生的过程。
于 2022-03-28 14:58:18 首次发布