/**
* 队列--顺序存储
**/
#include <stdlib.h>
#include <iostream.h>
#define OK 1
#define ERROR 0
//队列的最大数据元素数目
#define MAX_QUEUE 10
typedef struct queue{
//假设当数组只剩下一个单元时认为队满
int item[MAX_QUEUE];
//存放队列中数据元素的存储单元
int front,rear; //队头指针、队尾指针
}QUEUE;
//初始化队列Q
void InitQueue(QUEUE *Q)
{
Q->front=-1;
Q->rear=-1;
}
//入队
void EnQueue(QUEUE *Q,int item)
{
if ((Q->rear+1)%MAX_QUEUE==Q->front) exit(0);
else
{
Q->rear=(Q->rear+1)%MAX_QUEUE;
Q->item[Q->rear]=item;
}
}
//判断队列Q是否为空
int QueueEmpty(QUEUE Q)
{
if (Q.front==Q.rear) return 1;
else return 0;
}
//获取队头元素内容
void GetFront(QUEUE Q,int *item)
{
if (QueueEmpty(Q)) exit(0);
else *item=Q.item[(Q.front+1)%MAX_QUEUE];
}
//出队
void DeQueue(QUEUE*Q,int *item)
{
if (QueueEmpty(*Q)) exit(0);
else
{
Q->front=(Q->front+1)%MAX_QUEUE;
*item=Q->item[Q->front];
}
}