為啥我的代碼一樣,但是經過去取出首元素后遍歷,打印結果和剛開始入隊元素時的一樣
主函數實現的代碼
int main(void)
{
?MyQueue *p = new MyQueue(4);
?p->EnQueue(10);
?p->EnQueue(15);
?p->EnQueue(17);
?p->EnQueue(18);
?//p->EnQueue(20);
?p->QueueTraverse();
?int e = 0;
?p->DeQueue(e);
?cout << endl;
?cout << e << endl;
?p->DeQueue(e);
?cout << endl;
?cout << e << endl;
?cout << endl;
?p->QueueTraverse();
?p->ClearQueue();
?p->QueueTraverse();
?delete p;
?p = NULL;
?system("pause");
?return 0;
}
元素出隊的函數代碼
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;
?}
}
2020-01-15
樓主解決了嗎,我用的是m_iQueueCapacity
2019-08-21
遍歷函數里取余時,檢查一下有沒有用m_iQueueCapacity,而不能用m_iQueueLen.?