使用C++的代码实现链队列的清空
时间: 2024-10-15 19:30:23 浏览: 28
链队列程序
在C++中,链队列的清空可以分为两步:一是遍历并修改节点,二是处理内存释放。这里是一个简单的示例:
```cpp
#include <iostream>
// 定义链队列节点结构体
struct Node {
int data;
Node* next;
};
class Queue {
private:
Node* front; // 前端指针
Node* rear; // 后端指针
public:
// 构造函数和其它队列操作省略...
void clear() {
if (front == nullptr) { // 如果队列为空,直接返回
return;
}
Node* temp = front; // 创建临时指针,用于保存当前节点
while (temp != nullptr) { // 遍历整个链表
Node* nextTemp = temp->next;
delete temp; // 删除节点
temp = nextTemp; // 更新临时指针
}
front = rear = nullptr; // 将前端和后端指针都置为nullptr
}
};
int main() {
Queue q;
// ... 运行队列操作 ...
q.clear(); // 清空队列
return 0;
}
```
在这个例子中,`clear()`函数首先判断队列是否为空,然后通过迭代不断删除节点并将临时指针移动,直到所有节点都被处理完毕。注意,`Node` 的内存需要手动释放,因为C++默认不提供垃圾收集机制。
阅读全文