尾插法建立单链表函数,插入元素函数,删除元素函数
时间: 2024-09-07 13:04:18 浏览: 49
尾插法是一种在单链表中高效添加新元素的方法,通常用于在列表的末尾插入节点。以下是创建单链表结构、插入元素以及删除元素的简要说明:
1. **链表结构**:
```c
typedef struct Node {
int data; // 节点的数据
struct Node* next; // 指向下一个节点的指针
} Node;
```
2. **插入元素函数(尾插法)**:
```c
void insertAtEnd(Node** head, int value) {
if (*head == NULL) { // 如果链表为空,新建头部节点
Node* newNode = (Node*)malloc(sizeof(Node));
newNode->data = value;
newNode->next = NULL;
*head = newNode;
} else { // 非空链表,找到尾部并插入
Node* current = *head;
while (current->next != NULL) {
current = current->next;
}
current->next = (Node*)malloc(sizeof(Node));
current->next->data = value;
current->next->next = NULL;
}
}
```
3. **删除元素函数(假设我们要删除值为`value`的节点)**:
```c
void deleteNode(Node** head, int value) {
if (*head == NULL) return; // 空链表无需操作
Node* current = *head;
Node* previous = NULL;
// 找到需要删除的节点
while (current != NULL && current->data != value) {
previous = current;
current = current->next;
}
// 若找到了要删除的节点
if (current != NULL) {
if (previous == NULL) { // 删除头节点
*head = current->next;
} else { // 删除中间或尾节点
previous->next = current->next;
}
free(current); // 释放节点内存
}
}
```