用c++语言写出一个顺序队列
时间: 2024-10-15 09:21:27 浏览: 23
在编程语言中怎样定义队列及其使用(C++)
在C++中,我们可以使用数组或者动态内存分配(如`std::vector`)来实现一个简单的顺序队列。这里提供一个基于数组实现的例子:
```cpp
#include <iostream>
class Queue {
private:
int* arr; // 存储队列元素的数组
int capacity; // 队列容量
int front; // 前端指针
int rear; // 后端指针
public:
Queue(int size) : capacity(size), front(0), rear(0) { // 初始化队列
arr = new int[capacity];
}
~Queue() { // 析构函数,释放内存
delete[] arr;
}
bool isEmpty() const { return front == rear; } // 判断队列是否为空
void enqueue(int value) { // 入队操作
if (rear + 1 == capacity) { // 当队列满时
std::cout << "Queue is full!\n";
return;
}
arr[rear++] = value; // 如果空间允许,则添加到后端
}
int dequeue() { // 出队操作
if (isEmpty()) { // 当队列空时
std::cout << "Queue is empty!\n";
return -1; // 返回错误值表示无法出队
}
int value = arr[front]; // 获取前端元素
arr[front++] = 0; // 将前端指针移动并清空位置
return value;
}
void display() const { // 显示队列内容
for (int i = front; i != rear; ++i) {
std::cout << arr[i] << " ";
}
std::cout << "\n";
}
};
int main() {
Queue q(5); // 创建一个容量为5的队列
q.enqueue(1);
q.enqueue(2);
q.enqueue(3);
q.display();
std::cout << "Dequeued: " << q.dequeue() << "\n";
return 0;
}
```
阅读全文