编写代码,实现一个队列(Queue)类。并完成入队、出队的操作。
时间: 2024-02-25 18:57:59 浏览: 133
C#内置队列类Queue用法实例
5星 · 资源好评率100%
好的,我可以提供一个简单的C++代码示例:
```c++
#include <iostream>
using namespace std;
const int MAX_SIZE = 100; // 队列最大容量
class Queue {
private:
int data[MAX_SIZE]; // 队列数据存储数组
int front; // 队首指针
int rear; // 队尾指针
public:
Queue() { // 构造函数,初始化队首、队尾指针
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(int& x) { // 出队操作
if (isEmpty()) return false; // 队列为空,出队失败
x = data[front]; // 取出队首元素
front = (front + 1) % MAX_SIZE; // 队首指针后移一位
return true;
}
};
int main() {
Queue q;
int x;
q.enqueue(1);
q.enqueue(2);
q.enqueue(3);
while (!q.isEmpty()) {
q.dequeue(x);
cout << x << " ";
}
cout << endl;
return 0;
}
```
在这个示例中,我们使用一个数组来存储队列元素,使用front和rear两个指针来记录队列的首尾位置。enqueue方法用于入队操作,如果队列已满则返回false,否则将元素插入队尾并将rear指针后移一位;dequeue方法用于出队操作,如果队列为空则返回false,否则返回队首元素并将front指针后移一位。
阅读全文