队列链式存储完整代码c++
时间: 2024-10-07 11:05:21 浏览: 3
队列是一种先进先出(FIFO)的数据结构,在C++中,我们可以使用链表来实现一个自定义的队列。下面是一个简单的单向链表队列的实现示例:
```cpp
#include <iostream>
// 定义节点结构体
struct Node {
int data;
Node* next;
};
// 队列类
class Queue {
private:
Node* front; // 队头指针
Node* rear; // 队尾指针
public:
// 构造函数
Queue() : front(nullptr), rear(nullptr) {}
// 查看队列是否为空
bool isEmpty() const { return front == nullptr; }
// 插入元素到队尾
void enqueue(int value) {
Node* newNode = new Node();
newNode->data = value;
newNode->next = nullptr;
if (isEmpty()) {
front = rear = newNode;
} else {
rear->next = newNode;
rear = newNode;
}
}
// 删除并返回队首元素
int dequeue() {
if (isEmpty()) {
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;
}
// 打印队列内容
void display() const {
Node* current = front;
while (current != nullptr) {
std::cout << current->data << " ";
current = current->next;
}
std::cout << "\n";
}
};
int main() {
Queue queue;
queue.enqueue(1);
queue.enqueue(2);
queue.enqueue(3);
std::cout << "Queue before deletion:\n";
queue.display();
std::cout << "Dequeued element: " << queue.dequeue() << "\n";
std::cout << "Queue after deletion:\n";
queue.display();
return 0;
}
```
这个代码实现了基本的队列操作,如插入(enqueue)、删除(dequeue)以及查看是否为空(isEmpty)。`display`函数用于打印队列的内容。