用c++编写顺序队列来实现队列的初始化、入队、出队、取队头元素等操作
时间: 2024-10-19 13:08:36 浏览: 99
在C++中,我们可以使用数组或者动态内存管理的数据结构如`std::vector`来实现顺序队列。这里是一个简单的使用数组实现的顺序队列示例:
```cpp
#include <iostream>
class Queue {
private:
int* arr; // 队列存储数组
int front; // 队头指针
int rear; // 队尾指针
int capacity; // 队列容量
public:
Queue(int size) : arr(new int[size]), front(0), rear(0), capacity(size) {}
~Queue() { delete[] arr; } // 析构函数释放内存
// 初始化队列为空
void init() {
front = rear = 0;
}
// 入队(添加元素)
bool enQueue(int value) {
if (rear == capacity - 1) {
std::cout << "Queue is full.\n";
return false;
}
arr[rear++] = value;
return true;
}
// 出队(移除并返回元素)
int deQueue() {
if (front == rear) {
std::cout << "Queue is empty.\n";
return -1;
}
int removedValue = arr[front];
front++;
return removedValue;
}
// 取队头元素(查看但不移除)
int peek() const {
if (front == rear) {
std::cout << "Queue is empty.\n";
return -1;
}
return arr[front];
}
};
int main() {
Queue queue(5);
queue.init();
queue.enQueue(1);
queue.enQueue(2);
queue.enQueue(3);
std::cout << "Queue head: " << queue.peek() << "\n";
std::cout << "Dequeued: " << queue.deQueue() << "\n";
return 0;
}
```
在这个例子中,我们创建了一个`Queue`类,它包含一个内部数组`arr`,两个指针`front`和`rear`分别表示队头和队尾。`enQueue()`方法用于将元素加入队尾,`deQueue()`方法从队头取出元素,`peek()`方法则允许查看队头元素但不移除。
阅读全文