#include<stdio.h>
#include<stdlib.h>
const int M=100;
typedef struct
{
int data[M];
int front;
int rear;
}Queue;
void InitQueue(Queue &Q)
{
Q.front = 0;
Q.rear = 0;
}
int QueueEmpty(Queue Q)
{
return Q.front==Q.rear ? 1 :0;
}
int Push(Queue &Q, int e)
{
if((Q.rear+1)%M ==Q.front)
{
return 0;
}
Q.data[Q.rear] = e;
Q.rear = (Q.rear+1)%M;
return 1;
}
int Pop(Queue &Q,int &e)
{
if(Q.front == Q.rear)
{
return 0;
}
e=Q.data[Q.front];
Q.front = (Q.front+1)%M;
return 1;
}
int main(void)
{
const int N = 10;
int i;
int e;
Queue Q;
InitQueue(Q);
for(i=0;i<N;++i)
{
Push(Q,i);
}
for(i=0;i<N;++i)
{
Pop(Q,e);
printf("data[%d]=%d\n",i,e);
}
system("pause");
return 0;
}
#include<stdlib.h>
const int M=100;
typedef struct
{
int data[M];
int front;
int rear;
}Queue;
void InitQueue(Queue &Q)
{
Q.front = 0;
Q.rear = 0;
}
int QueueEmpty(Queue Q)
{
return Q.front==Q.rear ? 1 :0;
}
int Push(Queue &Q, int e)
{
if((Q.rear+1)%M ==Q.front)
{
return 0;
}
Q.data[Q.rear] = e;
Q.rear = (Q.rear+1)%M;
return 1;
}
int Pop(Queue &Q,int &e)
{
if(Q.front == Q.rear)
{
return 0;
}
e=Q.data[Q.front];
Q.front = (Q.front+1)%M;
return 1;
}
int main(void)
{
const int N = 10;
int i;
int e;
Queue Q;
InitQueue(Q);
for(i=0;i<N;++i)
{
Push(Q,i);
}
for(i=0;i<N;++i)
{
Pop(Q,e);
printf("data[%d]=%d\n",i,e);
}
system("pause");
return 0;
}