/** * 队列--顺序存储 **/ #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]; } }