数据结构实验三 队列(循环队列出队,入队)

一、 实验目的
1. 熟悉队列的顺序和链式存储结构
2. 掌握队列的基本运算
3. 能够利用队列的基本运算完成队列应用的运算
二、 实验内容
1. 假设以数组sequ[m]存放循环队列的元素,同时设变量rear和quelen 分别指示循环队列中队尾元素的位置和内含元素的个数。编写实现该循环队列的入队和出队操作的算法。提示:队空的条件:sq->quelen==0;队满的条件:sq->quelen==m。

//cirqueue.h
//本头文件为循环队列
#include
using namespace std;
const int m=100;

template<class T>
class cirqueue   //循环队列cirqueue类
{
    private:
        T sequ[m];       //sequ[m]存放循环队列的元素
        int front,rear;  //front:队头元素的前一个位置,rear:队尾元素
        int quelen;      //循环队列元素的个数
    public:
        cirqueue(){front=rear=m-1;quelen=0;}  //构造函数
        ~cirqueue(){}    //析构函数
        void enqueue(T x);//入队
        T dequeue();  //出队
        int length(); //求元素个数
};

template<class T>
void cirqueue::enqueue(T x)  //入队
{
    rear=(rear+1)%m;
    sequ[rear]=x;
}

template<class T>
T cirqueue::dequeue()//出队
{
    front=(front+1)%m;
    return sequ[front];
}

template<class T>
int cirqueue::length()//求元素个数
{
    if(front<=rear)quelen=rear-front;
    else quelen=100-front+rear;
    return quelen;
}

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