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再求余的方式来判断是否队满。