第23800题 单选
补全C++循环队列判断队列是否满的函数

下面定义了一个循环队列的类,请补全判断队列是否满的函数,横线上应填写( )。

#include <iostream>
using namespace std;

class circular_queue {
private:
    int *arr; // 数组用于存储队列元素
    int capacity; // 队列容量
    int front; // 队头指针
    int rear; // 队尾指针
public:
    circular_queue(int size) {
        capacity = size + 1; // 为了避免队列满时与队列空时指针相等的情况,多预留一个空间
        arr = new int[capacity];
        front = 0;
        rear = 0;
    }

    ~circular_queue() {
        delete[] arr;
    }

    bool is_empty() {
        return front == rear;
    }

    bool is_full() {
        ________________ // 在此处填入代码
    }

    void en_queue(int data) {
        if (is_full()) {
            cout << "队列已满,无法入队!" << endl;
            return -1;
        }
        arr[rear] = data;
        rear = (rear + 1) % capacity;
        return 1;
    }

    int de_queue() {
        if (is_empty()) {
            cout << "队列为空,无法出队!" << endl;
            return -1; // 出队失败,返回一个特殊值
        }
        int data = arr[front];
        front = (front + 1) % capacity;
        return data;
    }
};
A

return (rear + 1) % capacity == front;

B

return rear % capacity == front;

C

return rear == front;

D

return (rear + 1) == front;

提交0次 正确率0.00%
答案解析