在此代码中,rear ++是在队列中分配元素之后,即queue [rear] = ele;因此队列元素将从索引-1开始,后置位置为-1。后排++在队列之后如何工作?

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

最佳答案

通过此功能,队列的前面似乎在索引0处。
将元素添加到增加的数组位置。
示例:您的队列有2个元素:
ele1位于索引0,ele2位于索引1。
您在索引2处添加了另一个元素(此时2等于后)。
您增加后方(rear ++),以便以后添加下一个元素。

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

关于c++ - 入队功能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/62317631/

10-13 08:22