C语言动态链表增删改查
时间: 2023-07-07 20:21:28 浏览: 194
好的,我可以为您介绍一下 C 语言中动态链表的增删改查操作。
首先,我们需要定义一个链表结构体:
```c
typedef struct Node {
int data;
struct Node *next;
} Node, *LinkedList;
```
其中,`data` 表示链表节点中存储的数据,`next` 表示指向下一个节点的指针。
接下来,我们可以实现链表的创建操作:
```c
LinkedList createList() {
LinkedList head = (LinkedList)malloc(sizeof(Node));
head->next = NULL;
return head;
}
```
这个函数会返回一个链表头节点的指针,也就是一个空链表。
接下来,我们可以实现链表节点的插入操作:
```c
void insertNode(LinkedList L, int data) {
Node *newNode = (Node *)malloc(sizeof(Node));
newNode->data = data;
newNode->next = L->next;
L->next = newNode;
}
```
这个函数会在链表头节点后插入一个新的节点。
接下来,我们可以实现链表节点的删除操作:
```c
void deleteNode(LinkedList L, int data) {
Node *p = L;
while (p->next != NULL && p->next->data != data) {
p = p->next;
}
if (p->next == NULL) {
printf("Not found!\n");
return;
}
Node *tmp = p->next;
p->next = tmp->next;
free(tmp);
}
```
这个函数会在链表中查找指定数据的节点,并删除它。
最后,我们可以实现链表节点的查找操作:
```c
Node *findNode(LinkedList L, int data) {
Node *p = L->next;
while (p != NULL && p->data != data) {
p = p->next;
}
return p;
}
```
这个函数会在链表中查找指定数据的节点,并返回它的指针。
以上就是 C 语言中动态链表的增删改查操作。
阅读全文