用c语言实现单链表的ADT,其中要包括链表的生成、销毁、插入、删除、查找
时间: 2023-05-12 18:03:03 浏览: 68
以下是用C语言实现单链表的ADT的代码:
```c
#include <stdio.h>
#include <stdlib.h>
//定义链表节点结构体
typedef struct Node {
int data;
struct Node *next;
} Node;
//链表生成函数
Node* createList() {
Node *head = (Node*)malloc(sizeof(Node));
head->next = NULL;
return head;
}
//链表销毁函数
void destroyList(Node *head) {
Node *p = head;
while (p) {
Node *temp = p;
p = p->next;
free(temp);
}
}
//链表插入函数
void insert(Node *head, int data) {
Node *p = head;
while (p->next) {
p = p->next;
}
Node *newNode = (Node*)malloc(sizeof(Node));
newNode->data = data;
newNode->next = NULL;
p->next = newNode;
}
//链表删除函数
void removeNode(Node *head, int data) {
Node *p = head;
while (p->next) {
if (p->next->data == data) {
Node *temp = p->next;
p->next = p->next->next;
free(temp);
return;
}
p = p->next;
}
}
//链表查找函数
Node* find(Node *head, int data) {
Node *p = head->next;
while (p) {
if (p->data == data) {
return p;
}
p = p->next;
}
return NULL;
}
```
注意:以上代码只是单链表ADT的基本实现,还可以根据实际需求进行修改和扩展。