c语言单链表的插入和删除完整代码
时间: 2024-10-10 19:07:31 浏览: 7
在C语言中,单链表是一种基础的数据结构,其操作主要包括插入和删除节点。下面是一个简单的单向链表的插入和删除节点的示例代码:
首先,我们需要定义一个链表节点结构体:
```c
typedef struct Node {
int data; // 节点数据
struct Node* next; // 指向下一个节点的指针
} Node;
```
然后,我们编写插入节点的函数:
```c
void insertNode(Node** head, int value) {
// 如果链表为空,创建新节点作为头结点
if (*head == NULL) {
*head = (Node*)malloc(sizeof(Node));
(*head)->data = value;
(*head)->next = NULL;
} else { // 否则,在当前头部之后插入
Node* newNode = (Node*)malloc(sizeof(Node));
newNode->data = value;
newNode->next = *head;
*head = newNode;
}
}
```
接下来,是删除节点的函数,这里假设我们要删除值为`value`的节点:
```c
void deleteNode(Node** head, int value) {
// 遍历查找需要删除的节点
Node* current = *head;
Node* prev = NULL;
while (current != NULL && current->data != value) {
prev = current;
current = current->next;
}
// 如果找到节点,处理边界条件并删除节点
if (current != NULL) {
if (prev == NULL) {
*head = current->next; // 删除头节点
} else {
prev->next = current->next; // 删除中间节点
}
free(current); // 释放内存
}
}
```
注意,这只是一个基本的示例,实际应用中可能需要处理更多复杂情况,如删除链表尾部、循环链表等。