577777最快开奖现场477777_哪里下载 → 官方认证合作伙伴

澳门精准正版资料免费公开奖

环形队列是一种特殊的队列,其在实现上使用了循环数组来模拟队列的操作。以下是一个简单的C++环形队列示例代码:

#include <iostream>

class CircularQueue {
private:
    int* array;
    int front;
    int rear;
    int capacity;

public:
    CircularQueue(int size) {
        capacity = size + 1; // One extra space to differentiate between full and empty states
        array = new int[capacity];
        front = 0;
        rear = 0;
    }

    ~CircularQueue() {
        delete[] array;
    }

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

    bool isFull() {
        return (rear + 1) % capacity == front;
    }

    void enqueue(int value) {
        if (isFull()) {
            std::cout << "Queue is full. Cannot enqueue." << std::endl;
            return;
        }
        array[rear] = value;
        rear = (rear + 1) % capacity;
    }

    void dequeue() {
        if (isEmpty()) {
            std::cout << "Queue is empty. Cannot dequeue." << std::endl;
            return;
        }
        front = (front + 1) % capacity;
    }

    int getFront() {
        if (isEmpty()) {澳门精准三肖2020手机管家
            std::cout << "Queue is empty." << std::endl;
            return -1; // You can choose a different way to handle this case
        }
        return array[front];
    }
};

int main() {
    CircularQueue queue(3);

    queue.enqueue(10);
    queue.enqueue(20);
    queue.enqueue(30);

    std::cout << "Front element: " << 2024澳门今晚开奖结果49图库queue.getFront() << std::endl;

    queue.dequeue();

    std::cout << "Front element after dequeue: " << queue.getFront() << std::endl;

    return 0;
}

这段代码创建了一个环形队列类 ,它使用循环数组来模拟队列的操作。在循环数组中,数组的最后一个位置和第一个位置紧密相连,这就创建了环形的效果。在队列的 操作中, 指针会在循环中移动。在队列的 操作中, 指针也会在循环中移动。这样可以很好地利用数组空间,并实现队列的循环使用。

可以使用结构体来实现环形队列。以下是使用结构体的C++环形队列示例代码:

#include <iostream>

struct CircularQueue {
    int* array;
    int front;
    int rear;
    int capacity;

    CircularQueue(int size) {
        capacity = size + 1; // One extra space to differentiate between full and empty states
        array = new int[capacity];
        front = 0;
        rear = 0;
    }

    ~CircularQueue() {
        delete[] array;
    }

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

    bool isFull() {
        return (rear + 1) % capacity == front;
    }

    void enqueue(int value) {
        if (isFull()) {
            std::cout << "Queue is full. Cannot enqueue." << std::endl;
            return;
        }
        array[rear] = value;
        rear = (rear + 1) % capacity;
    }

    void dequeue() {
        if (isEmpty()) {
            std::cout << "Queue is empty. Cannot dequeue." << std::endl;
            return;
        }
        front = (front + 1) % capacity;
    }

    int getFront() {
        if (isEmpty()) {
            std::cout << "Queue is empty." << std::endl;
            return -1; // You can choose a different way to handle this case
        }
        return array[front];
    }
};

int main() {
    CircularQueue queue(3);

    queue.enqueue(10);
    queue.enqueue(20);
    queue.enqueue(30);

    std::cout << "Front element: " << queue.getFront() << std::endl;

    queue.dequeue();

    std::cout << "Front element after dequeue: " << queue.getFront() << std::endl;

    return 0;
}

这段代码使用了 关键字定义了一个名为 的结构体,其中包含了队列所需的成员变量。其他部分与之前的示例相似,只是将类转换为了结构体的形式。