#include"MyQueue.h"
#include<iostream>
#include<stdlib.h>
using?namespace?std;
MyQueue::MyQueue(int?queueCapacity)?
{
int?m_iQueueCapacity?=queueCapacity;
ClearQueue();??
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
? {
?
return?m_iQueueLen==0?true:false;
?}?
?int?MyQueue::QueueLength()const
?{
?return?m_iQueueLen;
?}?
bool?MyQueue::QueueFull()?const
{
if(m_iQueueLen==m_iQueueCapacity)?
{return?true;
}?
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()
{
for?(int?i=m_iHead;i<m_iQueueLen;i++)?
{
cout<<m_pQueue[i%m_iQueueLen]<<endl;?
}?
}?
/********************************/
/*實現(xiàn)環(huán)形隊列??????????????????*/?
/********************************/
int?main(void)
{
MyQueue?*p?=new?MyQueue(4);
?
p->EnQueue(10);
?
p->QueueTraverse();?
delete?p;
p?=?NULL;
cout<<MyQueue<<endl;
system("pause");
return?0;?
}
2016-04-30
void??MyQueue::QueueTraverse()
{
????for?(int?i = m_iHead; i < m_iHead +?m_iQueueLen; i++)?
????{
????????cout << m_pQueue[i % m_iQueueLen] << endl;?
????}?
}
2022-03-27
神馬沒有???一樣一樣的
2022-03-23
是不是只講在線安裝了,沒講包安裝。頁面滾動時觸發(fā)的事件吧