69,373
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
#include <malloc.h>
#define MaxSize 100
typedef int ElemType;
typedef struct
{
int data[MaxSize];
int front,rear; //队首和队尾指针
} SqQueue;
void InitQueue(SqQueue *&q) // 初始化对列
{
q=(SqQueue *)malloc (sizeof(SqQueue));
q->front=q->rear=0;
}
void ClearQueue(SqQueue *&q) //销毁队列
{
free(q);
}
int QueueEmpty(SqQueue *q) // 判断队列是否为空
{
return(q->front==q->rear);
}
int enQueue(SqQueue *&q,ElemType e) //入队列
{
if ((q->rear+1)%MaxSize==q->front) //队满
return 0;
q->rear=(q->rear+1)%MaxSize;
q->data[q->rear]=e;
return 1;
}
int deQueue(SqQueue *&q,ElemType &e) // 出队列
{
if (q->front==q->rear) //队空
return 0;
q->front=(q->front+1)%MaxSize;
e=q->data[q->front];
return 1;
}
int dis_play(SqQueue *&q)
{
if(q->front=q->rear)
printf("队列为空,无法输出!");
while((q->rear+1)%MaxSize!=q->front)
{
printf("%d",q->data[q->front]);
q->front=(q->front+1)%MaxSize;
}
return 1;
}
void Seedoctor()
{
int i,j,no,e;
SqQueue *p;
for(j=0;j<100;j++)
{
printf("请选择:1:排队;2:就诊;3:查看排队;4:不在排队,余下依次就诊;5:下班;\n");
printf("请选择1……5之间任意一个输入:\n");
scanf("%d",&i);
switch(i)
{
case 1:
{
printf(" >>输入病历号:");
scanf("%d",&no);
InitQueue(p); //创建空对
if(enQueue(p,no))
{
enQueue(p,no);
printf("您好,您应经加入队列中,请耐心等待您的就诊。\n");
}
else
printf("你好,该队已排满,请选择别的医生就诊!");
}
break;
case 2:
{
deQueue(p,e);
printf("请%d号进医生办公室就诊。\n",e);
}
break;
case 3:
{ printf("不再排队,余下的依次就诊.\n");
dis_play(p);
}
break;
case 4:
{
printf("排队顺序为:\n");
dis_play(p);
}
break;
case 5:
{
printf("你好,医生已经下班,请下次再来!\n");
ClearQueue(p);
}
break;
}
}
}
void main()
{
Seedoctor();
}
各位帮小弟看看,我这排队好像没有用上!!!
#include <stdio.h>
#include <malloc.h>
#define MaxSize 100
typedef int ElemType;
typedef struct
{
int data[MaxSize];
int front,rear; //队首和队尾指针
} SqQueue;
void InitQueue(SqQueue *&q) // 初始化对列
{
q=(SqQueue *)malloc (sizeof(SqQueue));
q->front=q->rear=0;
}
void ClearQueue(SqQueue *&q) //销毁队列
{
free(q);
}
int QueueEmpty(SqQueue *q) // 判断队列是否为空
{
return(q->front==q->rear);
}
int enQueue(SqQueue *&q,ElemType e) //入队列
{
if ((q->rear+1)%MaxSize==q->front) //队满
return 0;
q->rear=(q->rear+1)%MaxSize;
q->data[q->rear]=e;
return 1;
}
int deQueue(SqQueue *&q,ElemType &e) // 出队列
{
if (q->front==q->rear) //队空
return 0;
q->front=(q->front+1)%MaxSize;
e=q->data[q->front];
return 1;
}
int dis_play(SqQueue *&q)
{
if(q->front==q->rear)
printf("队列为空,无法输出!");
while((q->rear+1)%MaxSize!=q->front)
{
printf("%d",q->data[q->front]);
q->front=(q->front+1)%MaxSize;
}
return 1;
}
void Seedoctor()
{
int i,no,e,flag=1;
SqQueue *p;
InitQueue(p); //创建空对
while(flag==1)
{
printf("请选择:1:排队;2:就诊;3:查看排队;4:不在排队,余下依次就诊;5:下班;\n");
printf("请选择1……5之间任意一个输入:\n");
scanf("%d",&i);
switch(i)
{
case 1:
{
printf(" >>输入病历号:");
scanf("%d",&no);
if(enQueue(p,no))
{
printf("您好,您应经加入队列中,请耐心等待您的就诊。\n");
}
else
printf("你好,该队已排满,请选择别的医生就诊!");
}
break;
case 2:
{
deQueue(p,e);
printf("请%d号进医生办公室就诊。\n",e);
}
break;
case 3:
{ printf("不再排队,余下的依次就诊.\n");
dis_play(p);
}
break;
case 4:
{
printf("排队顺序为:\n");
dis_play(p);
flag=0;
}
break;
case 5:
{
printf("你好,医生已经下班,请下次再来!\n");
ClearQueue(p);
}
break;
}
}
}
void main()
{
Seedoctor();
}
修改了,一下,可是case3和case4还是有冲突啊。#include <stdio.h>
#include <malloc.h>
#define MaxSize 100
typedef int ElemType;
typedef struct
{
int data[MaxSize];
int front,rear; //队首和队尾指针
} SqQueue;
void InitQueue(SqQueue *q) // 初始化对列
{
q=(SqQueue *)malloc(sizeof(SqQueue));
q->front=q->rear=0;
}
void ClearQueue(SqQueue *q) //销毁队列
{
free(q);
}
int QueueEmpty(SqQueue *q) // 判断队列是否为空
{
return(q->front==q->rear);
}
int enQueue(SqQueue *q,ElemType e) //入队列
{
if ((q->rear+1)%MaxSize==q->front) //队满
return 0;
q->rear=(q->rear+1)%MaxSize;
q->data[q->rear]=e;
return 1;
}
int deQueue(SqQueue *q,ElemType e) // 出队列
{
if (q->front==q->rear) //队空
return 0;
q->front=(q->front+1)%MaxSize;
e=q->data[q->front];
return 1;
}
int dis_play(SqQueue *q)
{
if(q->front==q->rear)
printf("队列为空,无法输出!");
while((q->rear+1)%MaxSize!=q->front)
{
printf("%d",q->data[q->front]);
q->front=(q->front+1)%MaxSize;
}
return 1;
}
void Seedoctor()
{
int i,j,no,e;
SqQueue *p;
InitQueue(p); //创建空对
for(j=0;j<100;j++)
{
printf("请选择:1:排队;2:就诊;3:查看排队;4:不在排队,余下依次就诊;5:下班;\n");
printf("请选择1……5之间任意一个输入:\n");
scanf("%d",&i);
switch(i)
{
case 1:
{
printf(" >>输入病历号:");
scanf("%d",&no);
if(enQueue(p,no))
{
enQueue(p,no);
printf("您好,您应经加入队列中,请耐心等待您的就诊。\n");
}
else
printf("你好,该队已排满,请选择别的医生就诊!");
}
break;
case 2:
{
deQueue(p,e);
printf("请%d号进医生办公室就诊。\n",e);
}
break;
case 3:
{ printf("不再排队,余下的依次就诊.\n");
dis_play(p);
}
break;
case 4:
{
printf("排队顺序为:\n");
dis_play(p);
}
break;
case 5:
{
printf("你好,医生已经下班,请下次再来!\n");
ClearQueue(p);
}
break;
}
}
}
int main()
{
Seedoctor();
system("pause");
return 0;
}
int dis_play(SqQueue *&q)
{
if(q->front=q->rear) //初步看了一下,这里应该是q->front == q->rear
printf("队列为空,无法输出!");
int dis_play(SqQueue *&q)
{
if(q->front=q->rear) //初步看了一下,这里应该是q->front == q->rear
printf("队列为空,无法输出!");
#include <stdio.h>
#include <malloc.h>
#define MaxSize 100
typedef int ElemType;
typedef struct
{
int data[MaxSize];
int front,rear; //队首和队尾指针
} SqQueue;
void InitQueue(SqQueue *&q) // 初始化对列
{
q=(SqQueue *)malloc (sizeof(SqQueue));
q->front=q->rear=0;
}
void ClearQueue(SqQueue *&q) //销毁队列
{
free(q);
}
int QueueEmpty(SqQueue *q) // 判断队列是否为空
{
return(q->front==q->rear);
}
int enQueue(SqQueue *&q,ElemType e) //入队列
{
if ((q->rear+1)%MaxSize==q->front) //队满
return 0;
q->rear=(q->rear+1)%MaxSize;
q->data[q->rear]=e;
return 1;
}
int deQueue(SqQueue *&q,ElemType &e) // 出队列
{
if (q->front==q->rear) //队空
return 0;
q->front=(q->front+1)%MaxSize;
e=q->data[q->front];
return 1;
}
int dis_play(SqQueue *&q)
{
if(q->front==q->rear)
printf("队列为空,无法输出!");
while((q->rear+1)%MaxSize!=q->front)
{
printf("%d",q->data[q->front]);
q->front=(q->front+1)%MaxSize;
}
return 1;
}
void Seedoctor()
{
int i,j,no,e;
SqQueue *p;
InitQueue(p); //创建空对
for(j=0;j<100;j++)
{
printf("请选择:1:排队;2:就诊;3:查看排队;4:不在排队,余下依次就诊;5:下班;\n");
printf("请选择1……5之间任意一个输入:\n");
scanf("%d",&i);
switch(i)
{
case 1:
{
printf(" >>输入病历号:");
scanf("%d",&no);
if(enQueue(p,no))
{
enQueue(p,no);
printf("您好,您应经加入队列中,请耐心等待您的就诊。\n");
}
else
printf("你好,该队已排满,请选择别的医生就诊!");
}
break;
case 2:
{
deQueue(p,e);
printf("请%d号进医生办公室就诊。\n",e);
}
break;
case 3:
{ printf("不再排队,余下的依次就诊.\n");
dis_play(p);
}
break;
case 4:
{
printf("排队顺序为:\n");
dis_play(p);
}
break;
case 5:
{
printf("你好,医生已经下班,请下次再来!\n");
ClearQueue(p);
}
break;
}
}
}
void main()
{
Seedoctor();
}