1、一、要求队列的顺序存储结构(循环队列)和操作实现。
2、二、代码#include#include#define OVERFLOW -2#define MAXQSIZE 100 /*队列的最大长度*/typedef struct { int *base; // 队列的元素空间头指针指示器 int front; int rear; /*尾指针指示器*/}SqQueue; int InitQueue(SqQueue &Q) {//初始化操作Q.base = (int * )malloc(MAXQSIZE*sizeof(int));if (!Q. base) exit (OVERFLOW); Q.front=Q.rear =0;return 1;}int EnQueue(SqQueue &Q) {//入队操作int e;if ((Q. rear+ 1) % MAXQSIZE == Q. front){ printf("队列已满,不能进队\n"); return -1;//满标志}printf("请输入进队元素:");scanf("%d",&e);Q.base[Q.rear] = e;//进队Q.rear = (Q. rear + 1) % MAXQSIZE;//队尾指针后移return 1;}int DeQueue (SqQueue &Q) {//出队操作int e;if (Q. front == Q. rear) { printf("队列已经为空\n"); return -1;}e = Q. base[Q. front];//队头出队printf("%d 出队\n",e);Q.front = (Q.front + 1) % MAXQSIZE;//队头下标后移return 1;}void tip(){ printf("*************\n");printf("*输入1 进队 *\n");printf("*输入2 出队 *\n");printf("*输入0 退出 *\n");printf("*请选择: *\n");printf("*************\n");}int main(){int k;SqQueue Q;InitQueue(Q);//初始化tip();while(scanf("%d",&k),k){ switch(k) { case 1: EnQueue(Q); tip(); printf("操作完毕\n"); break; case 2: DeQueue(Q); tip(); printf("操作完毕\n"); break; }}return 0;}
3、三、运行结果