c语言中的链表及其相关的函数
链表是一种常见的数据结构,用于存储和管理数据。在C语言中,链表是通过指针来实现的。
链表由节点组成,每个节点包含两部分:数据和指针。数据部分用于存储实际数据,指针部分用于指向下一个节点。链表的第一个节点称为头节点,最后一个节点称为尾节点,尾节点的指针部分通常指向NULL。
以下是链表相关的常用函数:
- 创建节点函数:
struct Node {
int data;
struct Node* next;
};
struct Node* createNode(int data) {
struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));
newNode->data = data;
newNode->next = NULL;
return newNode;
}
- 插入节点函数:
void insertNode(struct Node** head, int data) {
struct Node* newNode = createNode(data);
if (*head == NULL) {
*head = newNode;
} else {
struct Node* temp = *head;
while (temp->next != NULL) {
temp = temp->next;
}
temp->next = newNode;
}
}
- 删除节点函数:
void deleteNode(struct Node** head, int data) {
if (*head == NULL) {
return;
}
struct Node* temp = *head;
struct Node* prev = NULL;
if (temp != NULL && temp->data == data) {
*head = temp->next;
free(temp);
return;
}
while (temp != NULL && temp->data != data) {
prev = temp;
temp = temp->next;
}
if (temp == NULL) {
return;
}
prev->next = temp->next;
free(temp);
}
- 查找节点函数:
struct Node* searchNode(struct Node* head, int data) {
struct Node* temp = head;
while (temp != NULL) {
if (temp->data == data) {
return temp;
}
temp = temp->next;
}
return NULL;
}
- 打印链表函数:
void printList(struct Node* head) {
struct Node* temp = head;
while (temp != NULL) {
printf("%d ", temp->data);
temp = temp->next;
}
printf("\n");
}
这些函数可以帮助你创建、插入、删除、查找和打印链表中的节点。你可以根据需要对这些函数进行修改和扩展
原文地址: https://www.cveoy.top/t/topic/hS2K 著作权归作者所有。请勿转载和采集!