编译环境:VC++6.0
实现操作:循环队列初始化、判队空、入队、出队、获取队头元素以及输出队列元素
实现代码:
#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 50
#define bool int
typedef struct
{
int data[MAXSIZE];
int front;
int rear;
}SqQueue;
void InitQueue(SqQueue *Q) //初始化队列
{
Q->front=Q->rear=0;
printf("队列初始化成功!\n");
}
bool QueueEmpty(SqQueue Q) //判队空
{
if(Q.front==Q.rear)
return 1;
else
return 0;
}
bool EnQueue(SqQueue *Q,int x) //入队
{
if((Q->rear+1)%MAXSIZE==Q->front)
return 0;
Q->data[Q->rear]=x;
Q->rear=(Q->rear+1)%MAXSIZE;
return 1;
}
bool DeQueue(SqQueue *Q,int *x) //出队
{
if(Q->front==Q->rear)
return 0;
*x=Q->data[Q->front];
Q->front=(Q->front+1)%MAXSIZE;
return 1;
}
int GetHead(SqQueue Q) //获取队头元素
{
if(Q.front==Q.rear)
return 0;
return Q.data[Q.front];
}
void display(SqQue