数据结构链表c语言
时间: 2023-06-21 18:20:36 浏览: 48
链表是一种常用的数据结构,它可以动态地创建和删除元素,具有较好的灵活性和扩展性。以下是一个简单的链表实现,使用C语言描述:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct Node {
int value;
struct Node* next;
} Node;
Node* create_node(int value) {
Node* node = (Node*) malloc(sizeof(Node));
node->value = value;
node->next = NULL;
return node;
}
void print_list(Node* head) {
Node* current = head;
while (current != NULL) {
printf("%d ", current->value);
current = current->next;
}
printf("\n");
}
void insert_node(Node** head, int value) {
Node* new_node = create_node(value);
new_node->next = *head;
*head = new_node;
}
void delete_node(Node** head, int value) {
Node* current = *head;
Node* prev = NULL;
while (current != NULL && current->value != value) {
prev = current;
current = current->next;
}
if (current == NULL) {
printf("Node not found\n");
return;
}
if (prev == NULL) {
*head = current->next;
} else {
prev->next = current->next;
}
free(current);
}
int main() {
Node* head = NULL;
insert_node(&head, 1);
insert_node(&head, 2);
insert_node(&head, 3);
insert_node(&head, 4);
print_list(head);
delete_node(&head, 3);
print_list(head);
return 0;
}
```
以上代码实现了链表的基本操作,包括创建节点、插入节点、删除节点和打印链表。需要注意的是,由于链表是动态创建的,所以需要手动释放内存,避免内存泄漏。