请给出一个循环队列的demo C++
时间: 2023-08-02 13:09:11 浏览: 110
好的,下面是一个简单的循环队列的 C++ 代码示例:
```c++
#include <iostream>
using namespace std;
const int MAXSIZE = 10; // 队列的最大容量
class CircularQueue {
private:
int front; // 队头指针
int rear; // 队尾指针
int data[MAXSIZE]; // 队列数组
public:
CircularQueue() { // 构造函数,初始化队列为空
front = rear = 0;
}
bool isFull() { // 判断队列是否已满
return (rear + 1) % MAXSIZE == front;
}
bool isEmpty() { // 判断队列是否为空
return front == rear;
}
bool enqueue(int x) { // 入队
if (isFull()) return false;
data[rear] = x;
rear = (rear + 1) % MAXSIZE;
return true;
}
bool dequeue(int &x) { // 出队
if (isEmpty()) return false;
x = data[front];
front = (front + 1) % MAXSIZE;
return true;
}
};
int main() {
CircularQueue q;
int x;
for (int i = 0; i < 12; i++) {
if (q.enqueue(i)) {
cout << "入队 " << i << endl;
} else {
cout << "队列已满" << endl;
}
}
for (int i = 0; i < 12; i++) {
if (q.dequeue(x)) {
cout << "出队 " << x << endl;
} else {
cout << "队列已空" << endl;
}
}
return 0;
}
```
在上面的示例中,我们通过一个 `CircularQueue` 类来实现循环队列的基本操作。其中,`front` 和 `rear` 分别记录队头和队尾的位置,`data` 数组用来存储队列中的数据。在 `enqueue()` 和 `dequeue()` 函数中,我们使用了取余运算来实现循环队列的循环性质。在 `main()` 函数中,我们通过一个简单的循环来测试队列的入队和出队操作。
阅读全文