c++(1)创建单链表 (2)单链表的初始化 (3)查找第i个结点的位置 (4)在单链表的第i个位置插入元素 (5)单链表的删除 (6)单链表的输出
时间: 2024-12-11 19:36:53 浏览: 26
在 C++ 中,我们可以按照以下步骤来操作单链表:
创建单链表:
- 首先,定义一个节点结构体,包含数据域和指向下一个节点的指针。例如:
struct Node { int data; Node* next; // 构造函数和析构函数省略 };
- 首先,定义一个节点结构体,包含数据域和指向下一个节点的指针。例如:
单链表的初始化:
- 如果需要一个空链表,可以创建一个空头节点:
Node* head = nullptr;
- 如果有初始值,可以动态分配节点并连接它们:
Node* head = new Node{value, nullptr}; // 创建第一个节点 Node* prev = head; for (int i = 1; i < n; ++i) { Node* newNode = new Node{nextValue, nullptr}; prev->next = newNode; prev = newNode; }
- 如果需要一个空链表,可以创建一个空头节点:
查找第 i 个结点的位置:
- 使用循环遍历,直到找到第 i 个节点或到达链表末尾:
Node* findNode(int index) { Node* current = head; if (index == 0) return head; for (int i = 1; i <= index && current != nullptr; ++i) { current = current->next; } return current; }
- 使用循环遍历,直到找到第 i 个节点或到达链表末尾:
在单链表的第 i 个位置插入元素:
- 先找到第 i 个位置,然后插入新的节点:
```cpp
void insertAtPosition(int index, int value) {
Node* newNode = new Node{value, nullptr};
if (index == 0) {
newNode->next = head;
head = newNode;
} else {
Node* current = findNode(index);
newNode->next = current->next;
current- 根据要删除的节点位置不同,分为头节点删除、中间节点删除和尾节点删除:
- 删除头节点:
head = head->next;
- 删除其他节点:
current->next = current->next->next;
其中current
是前一个节点。
- 删除头节点:
- 先找到第 i 个位置,然后插入新的节点:
```cpp
void insertAtPosition(int index, int value) {
Node* newNode = new Node{value, nullptr};
if (index == 0) {
newNode->next = head;
head = newNode;
} else {
Node* current = findNode(index);
newNode->next = current->next;
current- 根据要删除的节点位置不同,分为头节点删除、中间节点删除和尾节点删除:
单链表的输出:
- 可以通过循环打印每个节点的数据:
void printList() { Node* current = head; while (current != nullptr) { cout << current->data << " "; current = current->next; } cout << endl; }
- 可以通过循环打印每个节点的数据:
相关推荐


















