#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<windows.h>
#define MAXSIZE 100
typedef struct ElemType
{
int level;
char name[20];
char gender;
char ID[20];
}QelemType;
typedef struct{
QelemType *base;
int front;
int rear;
}squene;
void Initquene(squene *s){
s->base=(QelemType *)malloc(MAXSIZE * sizeof(QelemType));
if(!s->base)
exit(-1);
s->front=0;
s->rear=0;
}
void enquene(squene *s,QelemType e){
if((s->rear+1)%MAXSIZE==s->front){
printf("duimanb");
exit(0);
}
s->base[s->rear]=e;
s->rear=(s->rear+1)%MAXSIZE;
}
void dequene(squene *s,QelemType *e){
if(s->rear==s->front){
printf("栈空");
exit(-1);
}
*e=s->base[s->front];
s->front=(s->front+1) % MAXSIZE;
}
int length(squene s){
return (s.rear-s.front+MAXSIZE) % MAXSIZE;
}
int main()
{
int i,j;
int n;
squene Q1;
QelemType *e,t;
Initquene(&Q1);
printf("请输入前来就诊的病人数量:");
scanf("%d",&n);
e = (QelemType *)malloc(n*sizeof(QelemType));
for(i=0;i<n;i++)
{
printf("\n请输入第%d个病人的优先级:",i+1);
scanf("%d",&e[i].level);
printf("\n请输入第%d个病人的姓名:",i+1);
scanf("%s",e[i].name);
fflush(stdin);
printf("\n请输入第%d个病人的性别:",i+1);
scanf("%c",&e[i].gender);
printf("\n请输入第%d个病人的身份证:",i+1);
scanf("%s",e[i].ID);
}
for (i=0;i<n-1;i++)
{
for (j=0;j<n-i-1;j++)
{
if (e[j].level<e[j+1].level)
{
t = e[j];
e[j] = e[j+1];
e[j+1] = t;
}
}
}
for (i=0;i<n;i++)
{
enquene(&Q1,e[i]);
}
for (i=0;i<n;i++)
{
dequene(&Q1,&t);
printf("办理业务 姓名:%s,身份证号:%s,性别:%c,优先级:%d\n", t.name,t.ID, t.gender,t.level);
}
free(e);
e=NULL;
system("pause");
return 0;
}