队列符合先进先出的原则,循环队列可以持续地往队列里增加元素、减少元素。
以下为例。
MyQueue.h
#ifndef MYQUEUE_H
#define MYQUEUE_H
#include"Customer.h"
#include"MyQueue.h"
#include<iostream>
using namespace std;
template <typename T>//用类模板
class MyQueue
{
public:
MyQueue(int QueueCapacity);
virtual ~MyQueue();
void ClearQueue();
bool QueueEmpty()const;
bool QueueFull()const;
int QueueLength()const;
bool EnQueue(T element);
bool DeQueue(T &element);
void QueueTraverse();
private:
T * m_pQueue;//队列里的每个元素都是一个类的对象
int m_iQueueLen;
int m_iQueueCapacity;
int m_iHead,m_iTail;//队头队尾的脚标
};
template <typename T>
MyQueue<T>::MyQueue(int QueueCapacity)
{
m_iQueueCapacity = QueueCapacity;
m_pQueue = new T[m_iQueueCapacity];
ClearQueue();//直接调用
cout << "MyQueue(int QueueCapacity)" << endl;
}
template <typename T>
MyQueue<T>::~MyQueue()
{
delete []m_pQueue;
m_pQueue = NULL;
cout << "~MyQueue()" << endl;
}
template <typename T>
void MyQueue<T>::ClearQueue()
{
m_iQueueLen = 0;
m_iHead = m_iTail = 0;
}
template <typename T>
bool MyQueue<T>::QueueEmpty()const
{
if(m_iQueueLen == 0){
return true;
}else{
return false;
}
//return m_iQueueLen == 0?true:fa
版权声明:本文为zealice原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。