头插法和尾插发顺序c++
时间: 2024-09-19 13:06:39 浏览: 34
头插法(Head Insertion)和尾插法(Tail Insertion)是两种常用的链表操作技巧,在C++中,它们常用于动态数据结构的插入操作:
1. **头插法**(Insert at Head):在这种方法中,新元素被直接添加到链表的头部。在C++中,如果你有一个指向链表头节点的指针`head`,你可以创建一个新的节点,然后将新节点的`next`指针指向当前头节点,最后更新头指针`head`指向新节点。
```cpp
Node* headInsert(Node* head, Node* newNode) {
newNode->next = head;
head = newNode;
return head;
}
```
2. **尾插法**(Insert at Tail):新元素被添加到链表的尾部。首先找到链表的最后一个节点,通常通过遍历链表寻找`nullptr`或`tail->next`,然后将新节点的`next`指针设为`nullptr`,并将其`prev`指针设置为当前最后一个节点。
```cpp
Node* tailInsert(Node* tail, Node* newNode) {
if (tail == nullptr) {
newNode->next = newNode; // 如果链表为空,直接形成循环
tail = newNode;
} else {
newNode->prev = tail;
tail->next = newNode;
}
return tail;
}
```
阅读全文