循环队列-队空和队满的判断
public bool isEmpty()
{
    if (this._rear == this._front)
    {
        return true;
    }

    return false;
}

public bool isFull()
{
    int next = (this._rear + 1) % (this._maxLength + 1);
    if (next == this._front)
    {
        return true;
    }

    return false;
}

队空的时候很简单,那就是队头和队尾指标等于在一起了

但是队满的情况,队头队尾相等?队尾在队头的下一位?不行

所以,这里留空了一位来判断队满,就是队尾可以在那个留空位上,下一位就一定是队头

因为是循环队列,所以队尾的下一位的表示方式不能简单的+1,要考虑的情况:

循环队列与队列的链式结构循环队列与队列的链式结构

所以用+1再求余的方式来判断是否队满。


首页 我的博客
粤ICP备17103704号