单链表按顺序插入结点C++
时间: 2024-09-18 11:02:23 浏览: 58
在C++中,单链表是一种简单的线性数据结构,其中每个节点包含数据和指向下一个节点的指针。如果你想按照顺序向单链表中插入新的节点,可以按照以下步骤操作:
1. 定义一个`Node`结构体(如果还没有),它通常包括两个部分:存储数据的`data`成员和指向下一个节点的`next`指针。
```cpp
struct Node {
int data;
Node* next; // 指向下一颗节点
};
```
2. 插入新节点前,需要判断链表是否为空,如果是,则将新节点作为头节点。
```cpp
void insertAtStart(Node** head, int value) {
if (*head == nullptr) {
*head = new Node{value, nullptr}; // 新建节点并设其next为NULL,表示链表开始
} else {
// 链表非空,创建新节点
Node* newNode = new Node{value, *head}; // 新节点的next指向当前头节点
*head = newNode; // 将新节点设置为头节点
}
}
```
3. 如果想在链表中间或末尾插入节点,你需要遍历找到合适的位置,然后更新`next`指针。
```cpp
void insertAfter(Node** current, int value) {
if (*current != nullptr) {
Node* newNode = new Node{value, (*current)->next};
(*current)->next = newNode;
} else {
std::cout << "List is empty, can't insert after the first node." << std::endl;
}
}
```
4. 当完成插入后,记得释放之前分配的内存以避免内存泄漏。
```cpp
// 使用完后记得删除
void deleteNode(Node* node) {
delete node;
}
// 结尾处释放所有节点
void cleanup(Node* head) {
while (head != nullptr) {
Node* temp = head;
head = head->next;
delete temp;
}
}
```
阅读全文