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

为什么我的删除值总是第一个

http://img1.sycdn.imooc.com//58da5d5b0001241603960351.jpg

bool DeQueue(int &Elem)

    {

        if(QueueEmpty())

            return false;

        else

        {

            Elem=m_Queue[m_Tail];

            m_Head++;

            m_Head=m_Head%m_QueueCapacty;

            m_Queuelen--;

            return true;

        }

    }

不可以显示正确的所要删除的数,但是可以实现删除操作

10下边的数字不应该是输出20吗?

正在回答

3 回答

你执行出队操作,应该是对队列头进行操作对吧,因为队列是FIFO模型,但是你的代码中为什么写成了Elem=m_Queue[m_Tail];这是将队尾,要入队的元素赋值给ele?

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

else 下面的这行应该是Elem=m_Queue[m_Head];

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

 m_Head=m_Head%m_QueueCapacty+ m_Head;

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

weixin_慕无忌741431 提问者

输出依旧是原来的样子,问题应该不在这
2017-04-09 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么我的删除值总是第一个

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