#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 100
typedef struct
{
int *base;
int front;
int rear;
}SqQueue;
int InitQueue(SqQueue *Q)
{
Q->base=(int *)malloc(MAXSIZE*sizeof(int));
if(!Q->base)
return 1;
Q->front=Q->rear=0;
return 1;
}
int QueueLength(SqQueue Q)
{
return (Q.rear-Q.front+MAXSIZE)%MAXSIZE;
}
int EnQueue(SqQueue *Q,int e)
{
if((Q->rear+1)%MAXSIZE==Q->front)
return 0;
Q->base[Q->rear]=e;
Q->rear=(Q->rear+1)%MAXSIZE;
return 1;
}
int DeQueue(SqQueue *Q,int *e)
{
if(Q->front==Q->rear)
return 0;
*e=Q->base[Q->front];
Q->front=(Q->front+1)%MAXSIZE;
return 1;
}
void TraverseQueue(SqQueue Q)
{
if (EmptyQueue(Q))
{
int i = Q.front;
while (i != Q.rear)
{
printf("%d\n", Q.base[i]);
i = (i+1) % MAXSIZE;
}
printf("\n");
}
}
int EmptyQueue(SqQueue Q)
{
if (Q.front == Q.rear)
{
return 0;
}
else
{
return 1;
}
}
int main()
{
int i,m,*e;
SqQueue Q;
for(i=0;i<99;i++)
{
scanf("%d",&m);
EnQueue(&Q,m);
}
TraverseQueue(Q);
if(DeQueue(&Q,e))
printf("出队成功,出队元素的值为:%d\n",*e);
else
printf("出队失败!");
}
#include<stdlib.h>
#define MAXSIZE 100
typedef struct
{
int *base;
int front;
int rear;
}SqQueue;
int InitQueue(SqQueue *Q)
{
Q->base=(int *)malloc(MAXSIZE*sizeof(int));
if(!Q->base)
return 1;
Q->front=Q->rear=0;
return 1;
}
int QueueLength(SqQueue Q)
{
return (Q.rear-Q.front+MAXSIZE)%MAXSIZE;
}
int EnQueue(SqQueue *Q,int e)
{
if((Q->rear+1)%MAXSIZE==Q->front)
return 0;
Q->base[Q->rear]=e;
Q->rear=(Q->rear+1)%MAXSIZE;
return 1;
}
int DeQueue(SqQueue *Q,int *e)
{
if(Q->front==Q->rear)
return 0;
*e=Q->base[Q->front];
Q->front=(Q->front+1)%MAXSIZE;
return 1;
}
void TraverseQueue(SqQueue Q)
{
if (EmptyQueue(Q))
{
int i = Q.front;
while (i != Q.rear)
{
printf("%d\n", Q.base[i]);
i = (i+1) % MAXSIZE;
}
printf("\n");
}
}
int EmptyQueue(SqQueue Q)
{
if (Q.front == Q.rear)
{
return 0;
}
else
{
return 1;
}
}
int main()
{
int i,m,*e;
SqQueue Q;
for(i=0;i<99;i++)
{
scanf("%d",&m);
EnQueue(&Q,m);
}
TraverseQueue(Q);
if(DeQueue(&Q,e))
printf("出队成功,出队元素的值为:%d\n",*e);
else
printf("出队失败!");
}