#include<bits/stdc++.h> #define maxsize 1024 typedef struct { int data[maxsize]; int front,rear; int num;//队列中间元素的个数 }csequeue;//循环队列的定义 csequeue *q; void init_sequeue() { q=(csequeue*)malloc(sizeof(csequeue));//为q队列申请存储空间 q->rear=q->front=maxsize-1; q->num=0; }//构建空的循环队列 int in_sequeue(csequeue *q,int x) { if(q->num==maxsize-1) { printf("队满 "); return -1; } else { q->rear=(q->rear+1)%maxsize; q->data[q->rear]=x; q->num++; return 1; } }//入循环队列 int out_sequeue(csequeue *q) { if(q->num==0) { printf("队空 "); return -1; } else { q->front=(q->front+1)%maxsize; int x=q->data[q->front]; q->num--; return x; } }//出循环队列 int empty_sequeue(csequeue *q) { if(q->num==0) return 1; else return 0; }//判断循环队列是不是空 int main() { init_sequeue(); printf("请输入要进入循环队列的数据个数: "); int n; scanf("%d",&n); int i; for(i=0;i<n;i++) { int x; scanf("%d",&x); in_sequeue(q,x); } while(empty_sequeue(q)==0) { int x=out_sequeue(q); printf("%d ",x); } return 0; }
不正确的地方麻烦指正哦!!!