问题描述:如果用一个循环数组q[0..m-1]表示队列时,该队列只有一个队列头指针front,不设队列尾指针rear,而设置计数器count用以记录队列中节点的个数。使编写算法实现队列的4个基本操作:判空、入队、出队以及输出队列中所有元素。
完整代码如下:
//C++ - 77.2 - 循环数组表示队列,只用头指针和计数变量count
/* 算法 - 实现判空、入队、出队 */
/* 队列 - 先入先出表 */
//Y_27学习笔记
#include <iostream>
using namespace std;
template <typename T>
class arrqueue
{
private:
int MaxSize,front,count; //MaxSize - 数组最大容量、front - 队列头指针、count - 当前队列中元素个数
T *qu; //T类型的数组、qu为数组名
public:
arrqueue(int size) //构造函数 - 初始化成员变量、分配内存空间的好地方
{
MaxSize = size;
qu = new T[MaxSize];
count = front = 0;
}
~arrqueue() //析构函数、动态释放动态生成的内存
{
if( qu ) //qu != NULL
{
delete [] qu; //释放qu指向的内存块
qu = NULL;