#include<stdlib.h>
#include<stdio.h>
#define max 5
typedef int Ele;
typedef struct{
Ele data[max];
int front,rear;
}Squeue;
void InitQueue(Squeue &Q){
Q.front=Q.rear;
}
bool EmptyQueue(Squeue Q){
if(Q.front==Q.rear) return true;
return false;
}
bool EnQueue(Squeue &Q,Ele e){
if((Q.rear+1)%max==Q.front) return false;
Q.data[Q.rear]=e;
Q.rear=(Q.rear+1)%max;
return true;
}
bool DeQueue(Squeue &Q,Ele &e){
if(Q.front==Q.rear) return false;
e=Q.data[Q.front];
Q.front=(Q.front+1)%max;
return true;
}//尾进头出
int main(){
Squeue Q;
bool ret;
Ele e;
InitQueue(Q);
if(EmptyQueue(Q)) printf("队列为空\n");
ret=EnQueue(Q,1);if(ret) printf("入队成功!\n");
else printf("入队失败!\n");
ret=EnQueue(Q,2);if(ret) printf("入队成功!\n");
else printf("入队失败!\n");
ret=EnQueue(Q,3);if(ret) printf("入队成功!\n");
else printf("入队失败!\n");
ret=EnQueue(Q,4);if(ret) printf("入队成功!\n");
else printf("入队失败!\n");
ret=EnQueue(Q,5);if(ret) printf("入队成功!\n");
else printf("入队失败!\n");
if(DeQueue(Q,e)) printf("出队成功,元素为:%d\n",e);
else printf("出队失败\n");
if(DeQueue(Q,e)) printf("出队成功,元素为:%d\n",e);
else printf("出队失败\n");
ret=EnQueue(Q,5);if(ret) printf("入队成功!\n");
else printf("入队失败!\n");
}
有不理解的小伙伴可以+vx q2651877067,很高兴为你解答!