队列的顺序存储结构
#include<stdio.h>
#include<stdlib.h>
#define Maxsize 100
typedef struct{
int data[Maxsize];
int front, rear;
}SqQueue;
SqQueue Createqueue(SqQueue Q){
Q.front=Q.rear=0;
printf("队列初始化成功!");
return Q;
}
SqQueue Enqueue(SqQueue Q, int e) {
if(Q.rear==Maxsize-1)
printf("队列已满!");
else{
Q.data[Q.rear++]=e;
printf("%d已入队!",e);
}
return Q;
}
SqQueue Dequeue(SqQueue Q){
if(Q.front==Q.rear)
printf("队列为空!");
else{
int e=Q.data[Q.front++];
printf("%d已出队!",e);
}
return Q;
}
SqQueue Showqueue(SqQueue Q) {
if(Q.front==Q.rear)
printf("队列为空!");
else{
while(Q.front!=Q.rear){
printf("%d ",Q.data[Q.front++]);
}
}
return Q;
}
int main()
{
SqQueue Qa;
char str;
int e;
Qa=Createqueue(Qa);
printf("请选择循环队列操作:\nA:进对\tB;出对\tC;输出循环队列\n");
while(str!='C')
{
printf("请选择操作:");
scanf("%s",&str);
switch(str){
case 'A':
printf("请输入进对的值:");
scanf("%d",&e);
Qa=Enqueue(Qa,e);break;
case 'B':Qa=Dequeue(Qa);break;
case 'C':Showqueue(Qa);break;
default:printf("输入不合理,请重新输入");break;
}
}
}