---
////////////////////////////////////////////// //顺序队列的初始化,建立,插入,查找,删除。// //Author:Wang Yong // //Date: 2010.8.19 // ////////////////////////////////////////////// #include <stdio.h> #include <stdlib.h> #define MAX 100 typedef int ElemType; ///////////////////////////////////////////// //定义队列类型 typedef struct QNode { ElemType data[MAX]; int front,rear; }SeqQueue; ///////////////////////////////////////////// //顺序队列的初始化 SeqQueue SeqQueueInit() { SeqQueue Q; //队头和队尾相等即为空队列 Q.front = Q.rear = 0; return Q; } ///////////////////////////////////////////// //顺序队列的入队 void SeqQueueEnter(SeqQueue &Q,ElemType x) { if( (Q.rear+1) % MAX == Q.front )//入队必须判断队列是否满了 printf("Queue full "); Q.rear = (Q.rear+1) % MAX; Q.data[Q.rear] = x; } /////////////////////////////////////////// //顺序队列的出队列 ElemType SeqQueueOut(SeqQueue &Q) { if(Q.rear == Q.front) //出队列时候必须判断队列是否为空 printf("Queue empty "); ElemType x; Q.front = (Q.front+1) % MAX; x = Q.data[Q.front]; return x; } ////////////////////////////////////////// int main() { SeqQueue queue; queue = SeqQueueInit(); ElemType x; printf("请输入入队列的元素:"); while(scanf("%d",&x) != EOF) { SeqQueueEnter(queue,x); } while(queue.front != queue.rear) { printf("%d ",SeqQueueOut(queue)); } return 0; }
---