为了账号安全,请及时绑定邮箱和手机立即绑定

为啥我的代码一样,但是经过去取出首元素后遍历,打印结果和刚开始入队元素时的一样


主函数实现的代码

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;
 }
}


正在回答

2 回答

楼主解决了吗,我用的是m_iQueueCapacity

0 回复 有任何疑惑可以回复我~

遍历函数里取余时,检查一下有没有用m_iQueueCapacity,而不能用m_iQueueLen. 

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为啥我的代码一样,但是经过去取出首元素后遍历,打印结果和刚开始入队元素时的一样

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信