【顺序表】循环队列入队与出队

前言

本文章介绍的是循环队列的入队与出队的操作。

题目案例

输入描述

整数n表示n个元素入队

n个元素,用回车隔开

输出描述

输出三个元素

问题分析

  1. 首先应该初始化顺序表。
  2. 循环队列入队是通过改变队尾指针来达到入队的。
  3. 循环队列出队是通过改变队头指针来达到出队的。

 具体代码

#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

你可能感兴趣的:(数据结构)