【问题标题】:Enqueue Function入队函数
【发布时间】:2020-06-11 05:27:02
【问题描述】:

在此代码中,rear++ 是在队列中分配元素之后,即 queue[rear] = ele;所以队列元素将从索引 -1 开始,后面的位置将是 -1 。在 queue[rear]=ele; 之后这个后部 ++ 是如何工作的;

void enqueue()
{
    int ele;
    if (rear == MAX - 1)
    {
        cout<< "queue overflow" <<endl;
    }
    else
    {
        if (front == -1)
        {
            front = 0;
        }
        cout <<"enter the ele:";
        cin >> ele;
        queue[rear] = ele;
        rear++;
    }
}

【问题讨论】:

  • 代码不完整,所以我们不知道它到底是什么。如果是 -1 那就错了。

标签: c++ enqueue


【解决方案1】:

从这个函数来看,队列的前面似乎在索引 0 处。 元素被添加到增加的数组位置。 示例:您的队列有 2 个元素: ele1 在索引 0 处,ele2 在索引 1 处。 您在索引 2 处添加另一个元素(此时 2 等于后部)。 您增加后部(后部++)以稍后添加下一个元素。

正如 Sami 所说,索引 -1 在 C++ 数组中不存在。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-24
    • 2012-10-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多