c++实现一个链式队列
时间: 2024-11-04 15:09:59 浏览: 27
在C++中,链式队列是一种常见的数据结构实现,它使用链表作为底层存储结构。下面是一个简单的单向链式队列的实现:
```cpp
// 首先定义节点结构体
struct Node {
int data;
Node* next; // 指向下一个节点的指针
};
class Queue {
private:
Node* front; // 队头指针
Node* rear; // 队尾指针
public:
Queue() { front = rear = nullptr; } // 构造函数,初始化为空队列
// 插入元素到队尾
void enqueue(int value) {
Node* newNode = new Node();
newNode->data = value;
newNode->next = nullptr;
if (rear == nullptr) {
front = rear = newNode;
} else {
rear->next = newNode;
rear = newNode;
}
}
// 从队头删除元素并返回
int dequeue() {
if (front == nullptr) {
throw std::runtime_error("Queue is empty");
}
int removedValue = front->data;
Node* temp = front;
front = front->next;
// 如果队列仅剩一个元素,更新后端指针
if (front == nullptr) {
rear = nullptr;
}
delete temp; // 释放内存
return removedValue;
}
// 检查队列是否为空
bool isEmpty() {
return front == nullptr;
}
// 返回队列长度
size_t size() const {
size_t count = 0;
Node* current = front;
while (current != nullptr) {
++count;
current = current->next;
}
return count;
}
};
```
阅读全文