用c语言详细最优实现单链表操作
时间: 2023-05-11 17:07:47 浏览: 105
c语言实现链表的基本操作,链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。
单链表是一种常见的数据结构,用于存储一系列元素。以下是用 C 语言实现单链表的最优实现:
```c
#include <stdio.h>
#include <stdlib.h>
struct Node {
int data;
struct Node* next;
};
struct Node* head = NULL;
void insert(int data) {
struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));
newNode->data = data;
newNode->next = head;
head = newNode;
}
void delete(int data) {
struct Node* temp = head;
struct Node* prev = NULL;
while (temp != NULL && temp->data != data) {
prev = temp;
temp = temp->next;
}
if (temp == NULL) {
printf("Element not found\n");
return;
}
if (prev == NULL) {
head = temp->next;
} else {
prev->next = temp->next;
}
free(temp);
}
void display() {
struct Node* temp = head;
while (temp != NULL) {
printf("%d ", temp->data);
temp = temp->next;
}
printf("\n");
}
int main() {
insert(1);
insert(2);
insert(3);
insert(4);
insert(5);
display();
delete(3);
display();
return 0;
}
```
这个实现包括了插入、删除和显示单链表的功能。在插入时,我们创建一个新节点并将其插入到链表的头部。在删除时,我们遍历链表找到要删除的元素,然后将其从链表中移除。最后,我们可以使用 display() 函数来显示链表中的所有元素。
阅读全文