本文章介绍的是循环队列的入队与出队的操作。
输入描述
整数n表示n个元素入队
n个元素,用回车隔开
输出描述
输出三个元素
- 首先应该初始化顺序表。
- 循环队列入队是通过改变队尾指针来达到入队的。
- 循环队列出队是通过改变队头指针来达到出队的。
#include
#include
using namespace std;
#define MAXQSIZE 100
#define OK 1
#define ERROR 0
#define OVERFLOW -2
typedef char QElemType;
typedef char SElemType;
typedef int Status;
typedef struct {
QElemType *base;//初始化时动态分配存储空间
int front;//头指针
int rear;//尾指针
} SqQueue;
Status EnQueue(SqQueue &Q, QElemType e);
Status DeQueue(SqQueue &Q, QElemType &e);
//算法3.11 循环队列的初始化
Status InitQueue(SqQueue &Q) {//构造一个空队列Q
Q.base = new QElemType[MAXQSIZE]; //为队列分配一个最大容量为MAXSIZE的数组空间
if (!Q.base)
exit(OVERFLOW); //存储分配失败
Q.front = Q.rear = 0; //头指针和尾指针置为零,队列为空
return OK;
}
int main() {
SqQueue Q;
QElemType e, j;
int n,i;
InitQueue(Q);
cin>>n; //输入n的值
for(i=0;i>e; //输入e的值
EnQueue(Q, e);
}
while (DeQueue(Q, e)){
cout << e <
样例输入
3 A B C样例输出
A B C
END