数据结构单向链表插入代码
时间: 2023-05-25 17:05:39 浏览: 127
第二天-单向链表.zip
以下是单向链表插入代码的示例:
```
#include <stdio.h>
#include <stdlib.h>
// 定义链表结构体
typedef struct Node {
int data;
struct Node* next;
} Node;
// 链表插入函数
void insert(Node** head, int data) {
Node* new_node = (Node*)malloc(sizeof(Node)); // 创建新节点
new_node->data = data;
new_node->next = NULL;
if (*head == NULL) { // 链表为空,将新节点作为头节点
*head = new_node;
}
else { // 链表不为空,将新节点插入链表尾部
Node* temp = *head;
while (temp->next != NULL) {
temp = temp->next;
}
temp->next = new_node;
}
}
// 测试函数
int main() {
Node* head = NULL; // 定义头节点
insert(&head, 1); // 插入第一个节点
insert(&head, 2); // 插入第二个节点
insert(&head, 3); // 插入第三个节点
// 遍历链表
Node* temp = head; // 从头节点开始
while (temp != NULL) {
printf("%d ", temp->data);
temp = temp->next;
}
printf("\n");
return 0;
}
```
示例代码中使用了头指针(即双重指针),这样可以在插入新节点时对链表头节点进行修改。如果不使用头指针,则需要单独处理头节点的插入和删除情况。
在该代码中,插入操作采用了尾插法,即新节点始终插入到链表的尾部。具体实现方式是从头节点开始遍历链表,直到找到链表的最后一个节点,然后将新节点插入到其 next 指针处。如果链表为空,则将新节点作为头节点。
阅读全文