本文共 2267 字,大约阅读时间需要 7 分钟。
MyQueue.h
class MyQueue{public: MyQueue(int queueCapacity);//创建队列 virtual ~MyQueue();//销毁队列 void ClearQueue();//请空队列 bool QueueEmpty() const;//判空队列 bool QueueFull() const;//队列判满 int QueueLength() const;//队列长度 bool EnQueue(int element);//新元素入队 bool DeQueue(int &element);//首元素出队 void QueueTraverse();//遍历队列private: int *m_pQueue;//队列数组指针 int m_iQueueLen;//队列元素个数 int m_iQueueCapacity;//队列数组容量 int m_iHead;//队头 int m_iTail;//队尾};
MyQueue.cpp
#include "MyQueue.h"#includeusing namespace std;MyQueue::MyQueue(int queueCapacity)//创建队列{ m_iQueueCapacity = queueCapacity; m_iHead = 0; m_iTail = 0; m_iQueueLen=0; m_pQueue = new int[m_iQueueCapacity];}MyQueue::~MyQueue()//析构函数,销毁队列{ delete []m_pQueue; m_pQueue = NULL;}void MyQueue::ClearQueue()//清空队列{ m_iHead = 0; m_iTail = 0; m_iQueueLen = 0;}bool MyQueue::QueueEmpty() const//判空队列{ if(m_iQueueLen == 0) return true; else return false; // return m_iQueueLen == 0 ? true : false;}int MyQueue::QueueLength() const//队列长度{ return m_iQueueLen;}bool MyQueue::QueueFull() const//队列判满{ if(m_iQueueLen == m_iQueueCapacity) return true; else return false;}bool MyQueue::EnQueue(int element)//入队列{ if(QueueFull()) return false; else { m_pQueue[m_iTail] = element; m_iTail ++; m_iTail = m_iTail % m_iQueueCapacity; m_iQueueLen++; return true; }}bool MyQueue::DeQueue(int &element)//首元素出队{ if(QueueEmpty()) return false; else { element = m_pQueue[m_iHead]; m_iHead ++; m_iHead = m_iHead % m_iQueueCapacity; m_iQueueLen--; return true; }}void MyQueue::QueueTraverse()//遍历队列{ cout<
main.cpp(随便测试的数据)
#include#include #include "MyQueue.h"using namespace std;int main(){ MyQueue *p = new MyQueue(4); p->EnQueue(10); p->EnQueue(12); p->EnQueue(16); p->EnQueue(18); //p->EnQueue(20); p->QueueTraverse(); int e = 0; p->DeQueue(e); cout< DeQueue(e); cout< QueueTraverse(); p->ClearQueue(); p->QueueTraverse(); p->EnQueue(20); p->EnQueue(30); p->QueueTraverse(); delete p; p=NULL; system("pause"); return 0;}
转载地址:http://vjsaf.baihongyu.com/