C++循环队列的实现方法

   2024-10-06 8690
核心提示:#include iostream#define MAX_SIZE 10class CircularQueue {private:int front, rear;int queue[MAX_SIZE];public:CircularQueu

#include <iostream>#define MAX_SIZE 10class CircularQueue {private:    int front, rear;    int queue[MAX_SIZE];public:    CircularQueue() {        front = -1;        rear = -1;    }    bool isEmpty() {        return front == -1 && rear == -1;    }    bool isFull() {        return (rear + 1) % MAX_SIZE == front;    }    void enqueue(int value) {        if (isFull()) {            std::cout << "Queue is full. Cannot enqueue.\n";            return;        }        if (isEmpty()) {            front = 0;            rear = 0;        } else {            rear = (rear + 1) % MAX_SIZE;        }        queue[rear] = value;        std::cout << value << " enqueued to the queue.\n";    }    void dequeue() {        if (isEmpty()) {            std::cout << "Queue is empty. Cannot dequeue.\n";            return;        }        std::cout << queue[front] << " dequeued from the queue.\n";        if (front == rear) {            front = -1;            rear = -1;        } else {            front = (front + 1) % MAX_SIZE;        }    }    void display() {        if (isEmpty()) {            std::cout << "Queue is empty.\n";            return;        }        int i = front;        while (i != rear) {            std::cout << queue[i] << " ";            i = (i + 1) % MAX_SIZE;        }        std::cout << queue[rear] << "\n";    }};int main() {    CircularQueue q;    q.enqueue(10);    q.enqueue(20);    q.enqueue(30);    q.display();    q.dequeue();    q.display();    q.enqueue(40);    q.display();    return 0;}

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式 | 网站留言    |  赣ICP备2021007278号