第21164题 单选
给定C++实现的预留额外空间的循环队列类,补全is_full判满函数的空缺代码,横线处应填入的是?
#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;
        }
        arr[rear] = data;
        rear = (rear + 1) % capacity;
        return;
    }

    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%
答案解析