循环队列基本操作的实现代码
时间: 2023-12-07 20:35:58 浏览: 88
循环队列是一种常见的数据结构,它可以在固定大小的数组中实现队列的基本操作。以下是C++中循环队列的基本操作实现代码:
```c++
#include <iostream>
using namespace std;
const int MAXSIZE = 100; // 循环队列的最大容量
class CircularQueue {
private:
int front; // 队头指针
int rear; // 队尾指针
int data[MAXSIZE]; // 存储队列元素的数组
public:
CircularQueue() { // 构造函数,初始化队头和队尾指针
front = rear = 0;
}
bool isEmpty() { // 判断队列是否为空
return front == rear;
}
bool isFull() { // 判断队列是否已满
return (rear + 1) % MAXSIZE == front;
}
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;
q.enqueue(1);
q.enqueue(2);
q.enqueue(3);
while (!q.isEmpty()) {
q.dequeue(x);
cout << x << " ";
}
return 0;
}
```
以上代码实现了循环队列的基本操作,包括判断队列是否为空、判断队列是否已满、入队操作和出队操作。在入队操作中,需要判断队列是否已满,如果已满则入队失败;在出队操作中,需要判断队列是否为空,如果为空则出队失败。
阅读全文