C语言版数据结构中单链表的删除与插入代码怎么写
时间: 2024-09-17 17:02:19 浏览: 50
在C语言中,单链表是一种基础的数据结构,其删除和插入操作通常涉及节点的指针处理。下面是一个简单的示例,展示了如何在链表中插入和删除元素:
**插入节点(在链表尾部插入)**:
```c
// 定义链表节点结构体
typedef struct Node {
int data; // 节点数据
struct Node* next; // 指向下一个节点的指针
} Node;
// 插入新节点到链表尾部
void insert(Node** head, int value) {
if (*head == NULL) {
*head = (Node*)malloc(sizeof(Node));
(*head)->data = value;
(*head)->next = NULL;
} else {
Node* temp = *head;
while (temp->next != NULL) {
temp = temp->next;
}
temp->next = (Node*)malloc(sizeof(Node)); // 分配空间
temp->next->data = value;
temp->next->next = NULL;
}
}
```
**删除节点**:
```c
// 删除指定值的节点(如果存在)
void delete_node(Node** head, int value) {
if (*head == NULL) return;
Node* temp = *head, *prev = NULL;
if (temp->data == value) { // 如果头节点就是目标
*head = temp->next;
free(temp);
return;
}
while (temp != NULL && temp->data != value) {
prev = temp;
temp = temp->next;
}
if (temp == NULL) return; // 没找到要删除的节点
prev->next = temp->next;
free(temp); // 释放节点内存
}
```
阅读全文