C++指针实现双向链表
时间: 2024-09-25 19:04:23 浏览: 35
C++ 实现双向链表的实例
C++中,指针可以用来实现双向链表,因为链表本质上就是通过节点之间的指针链接起来的数据结构。双向链表的特点是每个节点不仅包含数据,还包含指向前一个节点(prev)和后一个节点(next)的指针。
下面是一个简单的示例:
```cpp
// 定义节点结构
struct Node {
int data;
Node* prev; // 指向前一个节点的指针
Node* next; // 指向后一个节点的指针
};
// 双向链表头结点
Node* head = nullptr;
// 插入操作,例如插入新节点到链表头部
void insertAtHead(int value) {
Node* newNode = new Node();
newNode->data = value;
newNode->prev = nullptr;
newNode->next = head;
if (head != nullptr) {
head->prev = newNode;
}
head = newNode;
}
// 删除操作,例如删除指定节点
void deleteNode(Node* node) {
if (node == nullptr) return;
if (node->prev != nullptr) {
node->prev->next = node->next;
} else {
head = node->next;
}
if (node->next != nullptr) {
node->next->prev = node->prev;
}
delete node; // 释放内存
}
阅读全文