用c语言创建一个单链表完成增删改工作
时间: 2024-10-19 09:14:39 浏览: 22
用C语言创建一个单链表的方法
在C语言中创建一个单链表并实现增删改操作,首先需要定义链表节点结构体、链表头指针以及相关的函数。以下是简单的步骤和关键代码:
1. **定义链表节点结构**:
```c
typedef struct Node {
int data; // 节点存储的数据
struct Node* next; // 指向下一个节点的指针
} Node;
```
2. **初始化链表头指针**:
```c
Node* head = NULL; // 初始链表为空
```
### **链表操作函数**
#### **添加节点(插入)**:
```c
void insertNode(int value) {
Node* newNode = (Node*)malloc(sizeof(Node)); // 分配内存
if (newNode != NULL) {
newNode->data = value;
newNode->next = head;
head = newNode;
} else {
printf("Memory allocation failed.\n");
}
}
```
#### **删除节点(搜索并删除指定值)**:
```c
void deleteNode(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("Value not found in the list.\n");
}
}
```
#### **修改节点值**:
```c
void updateNode(int old_value, int new_value) {
Node* temp = head;
while (temp != NULL && temp->data != old_value) {
temp = temp->next;
}
if (temp != NULL) {
temp->data = new_value;
} else {
printf("Old value not found in the list.\n");
}
}
```
阅读全文