📄 3.cpp
字号:
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 20 /* 数组最大界限 */
typedef int ElemType; /* 数据元素类型 */
typedef struct
{ ElemType len[MAXSIZE]; /* 一维数组子域 */
int front,rear; /* 头、尾指针子域 */
}sequ; /* 循环队列的结构体类型 */
sequ Q1;
/* 函数声明 */
void init_Q(sequ *Q);
void out_Q(sequ *Q);
void EnQueue(sequ *Q,ElemType e);
ElemType DeQueue(sequ *Q);
/* 主函数 */
void main()
{ int k; ElemType e,x; char ch;
init_Q( &Q1); /* 初始化一个空循环队列 */
do { printf("\n\n\n");
printf("\n\n 1. 数据元素e进队列 ");
printf("\n\n 2. 出队一个元素,返回其值");
printf("\n\n 3. 结束程序运行");
printf("\n======================================");
printf("\n 请输入您的选择 (1,2,3)");
scanf("%d",&k);
switch(k)
{ case 1:{ printf("\n 进队 e=?"); scanf("%d",&e);
EnQueue(&Q1,e); out_Q(&Q1);
} break;
case 2:{ x= DeQueue(&Q1);
printf("\n出队元素 : %d", x);
out_Q(&Q1 );
} break;
case 3: exit(0);
} /* switch */
printf("\n ----------------");
}while(k>=1 && k<3);
printf("\n 再见!");
printf("\n 打回车键,返回。"); ch=getchar();
} /* main */
/* 初始化空队列 */
void init_Q(sequ *Q)
{ Q->front=0; Q->rear=0;
} /* init_Q */
/* 输出队列的内容 */
void out_Q(sequ *Q)
{ char ch; int i;
/* 不能修改队列头、尾指针 */
if (Q->front==Q->rear) printf("\n Queue is NULL. ");
else{ i=(Q->front+1)% MAXSIZE;
while( i!=Q->rear){ printf("\n data=%d", Q->len[i]);
i=(i+1)%MAXSIZE; }
printf("\n data=%d", Q->len[i]);
}
printf("\n 打回车键,继续。"); ch=getchar();
} /* out_Q */
/* 进队函数 */
void EnQueue(sequ *Q,ElemType e)
{ if((Q->rear+1)%MAXSIZE==Q->front) printf("\n Queue is Overflow!");
else{ Q->rear=(Q->rear+1)% MAXSIZE ;
Q->len[Q->rear]=e;
}
}/* EnQueue */
/* 出队函数 */
ElemType DeQueue(sequ *Q)
{ ElemType x;
if(Q->front==Q->rear)
{ printf("\n Queue is NULL!");
x=-1;
}
else { Q->front=(Q->front+1)% MAXSIZE ;
x=Q->len[Q->front];
}
return(x);
} /* DeQueue */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -