在linuxc语言实现单链表的增删改查
时间: 2024-05-06 10:22:11 浏览: 54
单链表是一种常用的数据结构,它由若干个节点组成,每个节点包含一个数据元素和一个指向下一个节点的指针。在Linux C语言中,可以通过结构体来实现单链表,结构体包含一个数据成员和一个指向下一个节点的指针成员。
下面是一个简单的单链表结构体定义:
```c
typedef struct node {
int data;
struct node *next;
} Node;
```
其中,data表示数据元素,next表示指向下一个节点的指针。
增加节点操作:
```c
void add_node(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 *cur = *head;
while (cur->next != NULL) {
cur = cur->next;
}
cur->next = new_node;
}
}
```
删除节点操作:
```c
void delete_node(Node **head, int data) {
Node *cur = *head;
Node *prev = NULL;
while (cur != NULL) {
if (cur->data == data) {
if (prev == NULL) {
*head = cur->next;
} else {
prev->next = cur->next;
}
free(cur);
return;
}
prev = cur;
cur = cur->next;
}
}
```
修改节点操作:
```c
void modify_node(Node *head, int old_data, int new_data) {
Node *cur = head;
while (cur != NULL) {
if (cur->data == old_data) {
cur->data = new_data;
return;
}
cur = cur->next;
}
}
```
查询节点操作:
```c
Node* find_node(Node *head, int data) {
Node *cur = head;
while (cur != NULL) {
if (cur->data == data) {
return cur;
}
cur = cur->next;
}
return NULL;
}
```
以上就是在Linux C语言中实现单链表的增删改查操作的示例代码。
阅读全文