用c语言 编写⼀个链表的增删查API。
时间: 2024-03-17 11:41:26 浏览: 51
好的,下面是一个基本的链表增删查API的C语言实现:
首先,定义链表节点的结构体:
```c
typedef struct Node {
int value;
struct Node* next;
} Node;
```
其中,value表示节点的值,next指向下一个节点。
接下来,定义链表的结构体:
```c
typedef struct List {
Node* head;
int size;
} List;
```
其中,head指向链表的头节点,size表示链表的大小。
链表的初始化函数:
```c
List* initList() {
List* list = (List*)malloc(sizeof(List));
list->head = NULL;
list->size = 0;
return list;
}
```
链表的插入函数:
```c
void insertNode(List* list, int value) {
Node* newNode = (Node*)malloc(sizeof(Node));
newNode->value = value;
newNode->next = list->head;
list->head = newNode;
list->size++;
}
```
链表的删除函数:
```c
void deleteNode(List* list, int value) {
Node* curNode = list->head;
Node* preNode = NULL;
while (curNode != NULL) {
if (curNode->value == value) {
if (preNode == NULL) {
list->head = curNode->next;
} else {
preNode->next = curNode->next;
}
free(curNode);
list->size--;
break;
}
preNode = curNode;
curNode = curNode->next;
}
}
```
链表的查找函数:
```c
Node* searchNode(List* list, int value) {
Node* curNode = list->head;
while (curNode != NULL) {
if (curNode->value == value) {
return curNode;
}
curNode = curNode->next;
}
return NULL;
}
```
以上就是一个基本的链表增删查API的C语言实现,可以根据实际需要进行修改和扩展。
阅读全文