#include<stdio.h> #include<stdlib.h> #define MAX_SIZE 5 typedef struct sequeue { int data[MAX_SIZE]; int front,rear; }sequeue,*linkqueue; linkqueue initqueue() { linkqueue Q; Q=(linkqueue)malloc(sizeof(sequeue)); if(!Q) exit(1); Q->front=Q->rear=0; return Q; } int queuein(linkqueue Q,int x) { if(Q->front==(Q->rear+1)%MAX_SIZE) return 0; else { Q->data[Q->rear]=x; Q->rear=(Q->rear+1)%MAX_SIZE; return 1; } } int queueout(linkqueue Q,int *x) { if(Q->front==Q->rear) return 0; else { *x=Q->data[Q->front]; Q->front=(Q->front+1)%MAX_SIZE; return 1; } } int main(void) { int i,x; int t=0; linkqueue queue; queue=initqueue(); for(i=0;i<MAX_SIZE-1;i++) { scanf("%d",&x); queuein(queue,x); } for(i=0;i<MAX_SIZE-1;i++) { queueout(queue,&t); printf("%-5d",t); } printf("/n"); return 0; }