问答详情
源自:4-3 环形队列检测

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

http://img.mukewang.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吗?

提问者:weixin_慕无忌741431 2017-03-28 20:53

个回答

  • BingBing_Elf
    2018-03-13 16:04:29

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

  • 面具VS口罩
    2017-04-18 20:18:22

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

  • 慕婉清7366438
    2017-04-02 11:27:01


     m_Head=m_Head%m_QueueCapacty+ m_Head;