#include<stdio.h>
#define Maxsize 100
typedef struct {
char name[20];
int age;
}Student;
typedef struct{
Student a[Maxsize];
int front;
int rear;
int count;
}Queue;
void Init(Queue *q)
{ q->front=0;
q->rear=0;
q->count=0;
}
int Dequeue(Queue *q,Student *x)//出队
{ if(q->count==0)
{ printf("此队列为空");
return 0;
}
else
{ *x=q->a[q->front];
q->front=q->front+1%Maxsize;
q->count--;
return 1;
}
}
int Enqueue(Queue *q,Student x)//入队
{ if(q->count>0&&q->front==q->rear)
{printf("此队列已满");
return 0;}
else
{q->a[q->rear]=x;
q->rear=q->rear+1%Maxsize;
q->count++;
return 1;
}
}
int main()
{ int n,i;
Student a[Maxsize];
Queue q;
Init(&q);
printf("请输入队列的规模:");
scanf("%d",&n);
for(i=0;i<n;i++)
{ printf("请输入第%d个数据:",i+1);
scanf("%s%d",a[i].name,&a[i].age);
Enqueue(&q,a[i]);
}
Student x;
Dequeue(&q,&x);
printf("name=%s\nage=%d\n",x.name,x.age);
return 0;
}
顺序循环队列
最新推荐文章于 2024-04-27 00:24:34 发布