用c语言写一个单链表的插入与删除操作
时间: 2024-11-20 20:55:11 浏览: 55
在C语言中,单链表是一种基础的数据结构,可以用于插入和删除元素。这里是一个简单的例子,展示了如何创建链表节点、插入新节点以及删除节点:
首先,定义链表节点的结构体:
```c
typedef struct Node {
int data; // 节点数据
struct Node* next; // 指向下一个节点的指针
} Node;
```
### 插入操作 (在链表末尾)
```c
void insert(int value) {
Node* newNode = (Node*)malloc(sizeof(Node)); // 分配空间
if (newNode == NULL) {
printf("Memory allocation failed.\n");
return;
}
newNode->data = value;
newNode->next = NULL;
// 如果链表为空,则直接设置头结点
if (head == NULL) {
head = newNode;
} else { // 链表非空
Node* temp = head;
while (temp->next != NULL) {
temp = temp->next;
}
temp->next = newNode;
}
}
```
### 删除操作 (指定位置删除)
```c
void delete_node(int value) {
Node* temp = head;
Node* prev = NULL;
// 查找要删除的节点
while (temp != NULL && temp->data != value) {
prev = temp;
temp = temp->next;
}
// 如果找到节点
if (temp != NULL) {
// 如果要删除的是头节点
if (prev == NULL) {
head = temp->next;
} else {
prev->next = temp->next;
}
free(temp); // 释放内存
} else {
printf("Element not found in the list.\n");
}
}
```
阅读全文