实现一个简单的环形队列,初始指定大小,不自动进行扩容,支持出队列,入队列,判断队列是否已满,打印队列信息,获取队列长度等接口,使用模板实现,支持自定义数据类型,具体实现代码如下:
#ifndef MYCIRCLEQUEUE_H
#define MYCIRCLEQUEUE_H
#include <string>
#include <iostream>
using namespace std;
template <class T>
Class MyCircleQueue
{
public:
MyCircleQueue(int capacity);
virtual ~MyCircleQueue();
//清队列
void ClearQueue();
//入队列
bool Push(T element);
//出队列
bool Pop(T &element);
//获取队列长度
const int Size();
//判断队列是否空了
const bool IsEmpty();
//判断队列是否满了
const bool IsFull();
//输出队列信息
void PrintData(void(*pFunc)(T&));
private:
T* m_pArray = nullptr; //队列数据
int m_nCapacity = 0; //队列容量
int m_nHead = 0; //队首
int m_nTail = 0; //队尾
int m_nLength = 0; //队列长度
}
template <class T>
MyCircleQueue<T>::MyCircleQueue(int capacity)
{
m_nCapacity = capacity;
ClearQueue();
if((m_pArray = new T[m_nCapacity]) == nullptr)
{
t

该代码实现了一个基于模板的环形队列,具有指定初始容量,不支持自动扩容。队列提供了清队、入队、出队、检查队列是否为空或已满、打印队列信息以及获取队列长度的功能。队列内部使用数组存储自定义类型的数据。
最低0.47元/天 解锁文章
7777

被折叠的 条评论
为什么被折叠?



