实现循环队列的入队、出队运算的源代码
时间: 2023-09-04 19:08:18 浏览: 115
以下是实现循环队列的入队、出队运算的C++代码:
```c++
#include <iostream>
using namespace std;
const int MAXSIZE = 100; // 循环队列的最大长度
class CircularQueue {
private:
int queue[MAXSIZE]; // 循环队列的数组
int front; // 队首指针
int rear; // 队尾指针
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;
} else {
queue[rear] = x; // 将元素x插入队尾
rear = (rear + 1) % MAXSIZE; // 队尾指针加1
return true;
}
}
bool dequeue(int &x) { // 出队操作
if (isEmpty()) { // 如果队列为空
return false;
} else {
x = queue[front]; // 取出队首元素
front = (front + 1) % MAXSIZE; // 队首指针加1
return true;
}
}
};
int main() {
CircularQueue q;
int x;
cout << "入队操作:" << endl;
for (int i = 1; i <= 5; i++) {
cout << "请输入第" << i << "个元素:";
cin >> x;
if (q.enqueue(x)) {
cout << "入队成功!" << endl;
} else {
cout << "队列已满,入队失败!" << endl;
}
}
cout << endl;
cout << "出队操作:" << endl;
while (!q.isEmpty()) {
if (q.dequeue(x)) {
cout << "出队元素为:" << x << endl;
} else {
cout << "队列已空,出队失败!" << endl;
}
}
return 0;
}
```
以上代码中,CircularQueue类封装了循环队列的相关操作,包括判断队列是否为空、判断队列是否已满、入队操作和出队操作。在主函数中,我们对CircularQueue类进行了测试,实现了依次将5个元素入队并逐个出队的操作。
阅读全文