单项链表里pre指针与next指针的代码用法
时间: 2024-10-23 17:01:05 浏览: 19
在单链表数据结构中,`pre`(前驱节点)指针和`next`(后继节点)通常用于双向链表的设计。在双向链表中,每个节点除了包含指向下一个节点的`next`指针外,还额外有一个`prev`指针,它指向当前节点的前一个节点。这种设计允许更方便地在任意位置插入或删除节点,而不需要像单向链表那样需要遍历整个链表。
下面是一个简单的C++示例:
```cpp
// 定义双向链表节点结构体
struct Node {
int data; // 节点值
Node* next; // 指向下个节点
Node* prev; // 指向前一个节点
// 构造函数
Node(int value) : data(value), next(nullptr), prev(nullptr) {}
};
// 插入操作
void insert(Node*& head, int value) {
Node* newNode = new Node(value);
if (head == nullptr) {
head = newNode;
newNode->prev = nullptr;
} else {
newNode->prev = head->prev;
newNode->next = head;
if (head->prev != nullptr) {
head->prev->next = newNode;
}
head->prev = newNode;
}
}
// 删除操作
void remove(Node* head, Node* node) {
if (node->prev != nullptr) {
node->prev->next = node->next;
} else { // 如果是头节点
head = node->next;
}
if (node->next != nullptr) {
node->next->prev = node->prev;
}
delete node;
}
// 使用示例
Node* head = nullptr;
// ...(后续对链表的操作)
```
阅读全文