代码
#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 5
typedef struct SqQueen{
int data[MAXSIZE];
int front;
int rear;
}SqQueen;
void printSqQueen(SqQueen Q){
int i=Q.front;
while (Q.front != Q.rear){
printf ("%3d" ,Q.data[Q.front]);
Q.front = (Q.front+1 )%MAXSIZE ;
}
printf ("\n" );
}
int sqLength(SqQueen Q){
return (Q.rear-Q.front+MAXSIZE)%MAXSIZE;
}
void initSqQueen(SqQueen *Q){
Q->front = 0 ;
Q->rear = 0 ;
}
void inSqQueen(SqQueen *Q,int e){
if ((Q->rear+1 )%MAXSIZE == Q->front){
printf ("队列已满!\n" );
exit (-1 );
}
Q->data[Q->rear] = e;
Q->rear = (Q->rear+1 )%MAXSIZE;
printf ("入队:%d\n" ,e);
}
void outSqQueen(SqQueen *Q){
if (Q->front == Q->rear){
printf ("队列已空!\n" );
exit (-1 );
}
printf ("出队:%3d\n" ,Q->data[Q->front]);
Q->front = (Q->front+1 )%MAXSIZE;
}
int main(){
SqQueen Q;
initSqQueen(&Q);
inSqQueen(&Q,3 );
inSqQueen(&Q,5 );
inSqQueen(&Q,8 );
printSqQueen(Q);
outSqQueen(&Q);
printSqQueen(Q);
outSqQueen(&Q);
outSqQueen(&Q);
outSqQueen(&Q);
printSqQueen(Q);
printf ("Hello world !\n" );
return 0 ;
}
执行结果