编写一个简单的队列类,支持基本的队列操作:入队、出队、取队首元素和检查队列是否为空。
时间: 2024-08-12 09:08:15 浏览: 39
编写一个简单的队列类,通常在大多数编程语言中,如C++或Java中,可以使用数组或者链表实现。这里以C++为例,给出一个基于数组实现的队列(先进先出,即FIFO):
```cpp
template <typename T>
class Queue {
private:
std::size_t front, rear;
T elements[100]; // 这里假设队列大小为100,可以根据实际需求调整
public:
// 构造函数和析构函数
Queue() : front(0), rear(0) {}
~Queue() {}
// 判断队列是否为空
bool isEmpty() const {
return front == rear;
}
// 入队操作
void enqueue(const T& value) {
if (rear == front + 100) { // 队满处理
throw std::runtime_error("Queue is full");
}
elements[rear] = value;
rear = (rear + 1) % 100; // 使用模运算保持front和rear的索引循环
}
// 出队操作
T dequeue() {
if (isEmpty()) {
throw std::runtime_error("Queue is empty");
}
T value = elements[front];
front = (front + 1) % 100; // 同样使用模运算
return value;
}
// 取队首元素,不执行出队操作
T front() const {
if (isEmpty()) {
throw std::runtime_error("Queue is empty");
}
return elements[front];
}
};
```
阅读全文