银行排队叫号系统C
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#include
#include
typedef struct QNode
{
int data;
struct QNode*next;
}QNode,*QueuePtr;
typedef struct
{
QueuePtr front;
QueuePtr rear;
}LinkQueue;
int n=0;//记录队列的长度
void InitQueue(LinkQueue&s)
{
s.front=s.rear=(QueuePtr)malloc(sizeof(QNode));
s.front->next=NULL;
}
void EnQueue(LinkQueue&s,int e)
{
QueuePtr p;
p=(QueuePtr)malloc(sizeof(QNode));
p->data=e;
p->next=NULL;
s.rear->next=p;
s.rear=p;
n++;
}
void DeQueue(LinkQueue&s)
{
QueuePtr p;
p=s.front->next;
printf("%d\n",p->data);
s.front->next=p->next;
if(s.rear==p)
s.rear=s.front;
free(p);
n--;
}
void main()
{
int a;
LinkQueue s;
int e=10001;
InitQueue(s);
do
{
scanf("%d",&a);
switch(a)
{
case1:
{
EnQueue(s,e);
printf("标号为%4d入队,前面还有%4d人\n",s.front->next->data,n-1);
e++;
break;}
case2:
{
if(n-1>0)
DeQueue(s);
if(n-1<0)
printf("此时无人\n");
else
printf("前面还有%4d人\n",n-1);
break;}
}
}while(1);
}