用c++实现循环队列
时间: 2023-12-16 19:25:34 浏览: 82
循环队列是一种解决队列空间浪费和越界问题的方法,它可以通过牺牲一个存储空间来实现队列满的判断。下面是用C++实现循环队列的代码:
```
const int MAX_SIZE = 4; // 队列的容量
class CircularQueue {
private:
int front; // 队头指针
int rear; // 队尾指针
int data[MAX_SIZE]; // 存储队列元素的数组
public:
CircularQueue() {
front = rear = 0; // 初始化队头和队尾指针
}
bool isEmpty() {
return front == rear; // 判断队列是否为空
}
bool isFull() {
return (rear + 1) % MAX_SIZE == front; // 判断队列是否已满
}
bool enqueue(int x) {
if (isFull()) {
return false; // 队列已满,插入失败
}
data[rear] = x; // 插入元素到队尾
rear = (rear + 1) % MAX_SIZE; // 队尾指针后移
return true; // 插入成功
}
bool dequeue() {
if (isEmpty()) {
return false; // 队列为空,删除失败
}
front = (front + 1) % MAX_SIZE; // 队头指针后移
return true; // 删除成功
}
int getFront() {
if (isEmpty()) {
return -1; // 队列为空,返回-1
}
return data[front]; // 返回队头元素
}
};
```
阅读全文