这里的举个列子针对int数组队列,小伙伴们参考下,可以用Template来写啦!
环形队列的几个重要参数:
pQueue: 队列指针
MaxQueueSize: 最大容量
Head: 头指针
Tail: 尾指针
QueneLen: 队列长度
常用函数及其实现方法:
void ClearQueue() //清空队列
{
Head = 0;
Tail = 0;
QueueLen = 0;
}
bool QueueEmpty()const //判断队列是否空队列(每删除元素之前都得判断)
{
return (QueueLen == 0);
}
int QueueLength()const //求队列长度
{
return QueueLen;
}
bool QueueFull()const //判断队列是否满(每插入元素前都要判断)
{
if (QueueLen == MaxQueueSize)
{
return true;
}
return false;
}
bool EnQueue(int element) //插入
{
if (QueueFull()) //插入之前一定要判断是否满
{
return false;
}
else
{
pQueue[Tail] = element;
Tail++;
Tail = Tail % MaxQueueSize;
QueueLen++;
return true;
}
}
bool DeQueue(int &element) //删除
{
if (QueueEmpty())
{
return false;
}
else
{
element = pQueue[Head];
Head++;
Head = Head % MaxQueueSize;
QueueLen--;
return true;
}
}
void QueueTraverse() //打印函数
{
for (int i = Head; i < Head + QueueLen; i++)
{
//i = i % QueueLen;
i = i % MaxQueueSize;
cout << pQueue[i] << endl;
}
}