链式存储实现队列的初始化、入队、出队操作
时间: 2023-10-06 09:14:09 浏览: 197
链式存储实现队列,需要一个结构体来表示队列节点:
```C++
struct Node {
int data; // 存储数据
Node* next; // 指向下一个节点的指针
};
```
队列的初始化,可以创建一个空节点作为队列头,其next指针指向NULL,表示队列为空:
```C++
Node* head = new Node; // 创建一个空节点作为队列头
head->next = NULL; // 队列为空
```
队列的入队操作,需要找到队尾节点,将新节点插入到队尾:
```C++
void EnQueue(Node* head, int data) {
Node* p = head;
while (p->next != NULL) {
p = p->next; // 查找队列尾节点
}
Node* new_node = new Node; // 创建新节点
new_node->data = data;
new_node->next = NULL;
p->next = new_node; // 插入新节点
}
```
队列的出队操作,需要找到队头节点,将其next指针指向下一个节点,然后删除队头节点:
```C++
bool DeQueue(Node* head, int& data) {
if (head->next == NULL) {
return false; // 队列为空,无法出队
}
Node* p = head->next; // 找到队头节点
data = p->data; // 保存队头节点的数据
head->next = p->next; // 将队头指向下一个节点
delete p; // 删除队头节点
return true;
}
```
阅读全文