用C语言写链表的基本操作,要求易懂简洁
时间: 2023-03-31 08:00:52 浏览: 62
链表是一种常用的数据结构,用于存储一系列的数据。下面是用 C 语言实现链表的基本操作:
1. 定义链表节点结构体
typedef struct Node {
int data; // 节点数据
struct Node *next; // 指向下一个节点的指针
} Node;
2. 创建链表
Node *createList() {
Node *head = (Node *)malloc(sizeof(Node)); // 创建头节点
head->next = NULL; // 头节点的指针指向 NULL
return head;
}
3. 插入节点
void insertNode(Node *head, int data) {
Node *newNode = (Node *)malloc(sizeof(Node)); // 创建新节点
newNode->data = data; // 设置新节点的数据
newNode->next = head->next; // 新节点的指针指向头节点的下一个节点
head->next = newNode; // 头节点的指针指向新节点
}
4. 删除节点
void deleteNode(Node *head, int data) {
Node *p = head->next; // 从第一个节点开始查找
Node *pre = head; // 记录前一个节点
while (p != NULL) {
if (p->data == data) { // 找到要删除的节点
pre->next = p->next; // 前一个节点的指针指向要删除节点的下一个节点
free(p); // 释放要删除的节点的内存
return;
}
pre = p; // 前一个节点指针后移
p = p->next; // 当前节点指针后移
}
}
5. 查找节点
Node *findNode(Node *head, int data) {
Node *p = head->next; // 从第一个节点开始查找
while (p != NULL) {
if (p->data == data) { // 找到要查找的节点
return p;
}
p = p->next; // 当前节点指针后移
}
return NULL; // 没有找到节点,返回 NULL
}
以上就是用 C 语言实现链表的基本操作,希望能对你有所帮助。