// 循环队列.cpp : 定义控制台应用程序的入口点。
//
#include <stdio.h>
#define MaxSize 50
typedef int EleType;
typedef struct CirQue
{
EleType ele[MaxSize];
int front,rear;
}Queue;
//初始化
void init(Queue *Q)
{
Q->front = Q->rear = 0;
}
int EnterQue(Queue *Q,int x)
{
if((Q->rear+1) % MaxSize == Q->front)
return 0; //判断栈是否满
Q->ele[Q->rear] = x;
Q->rear = (Q->rear+1)%MaxSize;
return 1;
}
int DeletQue(Queue *Q,int *x)
{
if(Q->front == Q->rear) //判断栈是否空
return 0;
*x = Q->ele[Q->front];
Q->front = (Q->front+1)%MaxSize;
return 1;
}
int _tmain(int argc, _TCHAR* argv[])
{
Queue Q;
init(&Q);
int i,y;
int n= 0;
int a[MaxSize] = {0};
printf("请输入进队列的个数队列进!\n");
scanf("%d",&n);
printf("请输入进队列的各个元素!\n");
for(i = 0;i < n;i++)
{
scanf("%d",&a[i]);
EnterQue(&Q,a[i]);
}
printf("队列出!\n");
for(i = 0;i < 5;i++)
{
DeletQue(&Q,&y);
printf("y = %d\n",y);
}
return 0;
}