循环队列的实现
来源:互联网 发布:网络电视看有线怎么调 编辑:程序博客网 时间:2024/05/29 15:12
一、实验目的
1、 熟练掌栈和队列的结构特点,掌握栈和队列的顺序存储和链式存储结构和实现。2、 学会使用栈和队列解决实际问题。
二、实验内容
确定结点的具体数据类型和问题规模:建立一个循环队列,实现队列的入队和出队操作。
#CirQueue.h文件
const int QueueSize = 100;template<class T>class CirQueue{public:CirQueue();//构造函数,初始化空队列~CirQueue();//析构函数void EnQueue(T x);//入队操作,将元素X入队T DeQueue();//出队操作,将队伍元素出队T GetQueue();//取队头元素int Empty();//判断队列是否为空void PrintQueue();//从队头开始遍历队列private:T data[QueueSize];int front, rear;};#CirQueue.cpp文件
#include"CirQueue.h"template<class T>CirQueue<T>::CirQueue(){front = rear = QueueSize - 1;}template<class T>CirQueue<T>::~CirQueue(){}template<class T>void CirQueue<T>::EnQueue(T x){if ((rear + 1) % QueueSize == front)throw "上溢";rear = (rear + 1) % QueueSize;data[rear] = x;}template<class T>T CirQueue<T>::GetQueue(){int i;if (rear == front)throw"下溢";i = (front + 1) % QueueSize;return data[i];}template<class T>T CirQueue<T>::DeQueue(){if (rear == front)throw"下溢";front = (front + 1) % QueueSize;return data[front];}template<class T>int CirQueue<T>::Empty(){if (front == rear)return 1;elsereturn 0;}template<class T>void CirQueue<T>::PrintQueue(){int i;i = front;while (front != rear){front = (front + 1) % QueueSize;cout << data[front] << " ";}cout << endl;front = i;}#源.cpp文件
#include"CirQueue.cpp"#include<iostream>#include<string>using namespace std;int main(void){CirQueue<int> c1;c1.EnQueue(1);c1.EnQueue(2);c1.EnQueue(3);cout << c1.GetQueue() << endl;//获取队头元素c1.PrintQueue();//遍历队列cout<<c1.DeQueue()<<endl;//队头出列cout << c1.Empty() << endl;//判断c1是否空c1.DeQueue();c1.DeQueue();cout << c1.Empty() << endl;//判断c1是否空system("pause");return 0;}
实验截图如下:
四、实验心得
通过这次实验,发现自己的循环队列有了清晰的认识,也没遇到什么困难。
阅读全文
0 0
- 队列----循环队列的实现
- 循环队列的实现
- 循环队列的实现
- 循环队列的实现
- 循环队列的实现
- 循环队列的实现
- 循环队列的实现
- 循环队列的实现
- 循环队列的实现
- 循环队列的实现
- 循环队列的实现
- 循环队列的实现
- 循环队列的实现
- 循环队列的实现
- 循环队列的实现
- 循环队列的实现
- 循环队列的实现
- 循环队列的实现
- 蝶式算法扩展-----16位按位转换
- 【noip2012】国王游戏
- 69. Sqrt(x)
- 机器学习之必知十大机器学习算法
- 幼儿园第四天
- 循环队列的实现
- RxPermissions的简单应用
- linux下编译安装zlib
- 应急指挥系统有什么内容
- shell 按行读取文件的问题
- Oil Deposits (八个方向搜索)
- Python:获取当前py的文件名
- Ajax 的全面总结
- 常见配置redis.conf介绍