用c语言建立一个动态链表
时间: 2024-03-12 19:50:30 浏览: 24
好的,我可以为您提供一个简单的C语言动态链表的实现代码,如下所示:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义链表节点结构体
struct Node {
int data;
struct Node* next;
};
// 插入节点函数
void insert_node(struct Node** head_ref, int new_data) {
struct Node* new_node = (struct Node*)malloc(sizeof(struct Node));
new_node->data = new_data;
new_node->next = (*head_ref);
(*head_ref) = new_node;
}
// 删除节点函数
void delete_node(struct Node** head_ref, int key) {
struct Node* temp = *head_ref, *prev;
if (temp != NULL && temp->data == key) {
*head_ref = temp->next;
free(temp);
return;
}
while (temp != NULL && temp->data != key) {
prev = temp;
temp = temp->next;
}
if (temp == NULL) return;
prev->next = temp->next;
free(temp);
}
// 打印链表函数
void print_list(struct Node* node) {
while (node != NULL) {
printf("%d ", node->data);
node = node->next;
}
}
// 示例
int main() {
struct Node* head = NULL;
insert_node(&head, 1);
insert_node(&head, 2);
insert_node(&head, 3);
insert_node(&head, 4);
printf("链表为:");
print_list(head);
delete_node(&head, 3);
printf("\n删除节点后链表为:");
print_list(head);
return 0;
}
```
这段代码实现了一个简单的动态链表,具有插入节点、删除节点和打印链表功能。您可以根据需要进行修改和扩展。