将所有代码整合到一起
时间: 2024-10-16 20:10:59 浏览: 9
为了将所有单链表的基本操作整合到一起,你需要在一个主程序中调用各个函数。这里是一个简单的示例,展示了如何实现:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义链表节点结构
typedef struct Node {
int data;
struct Node* next;
} Node;
// 创建链表(尾插法)
void createList(Node** head, int arr[], int n) {
*head = NULL;
for (int i = 0; i < n; i++) {
Node* newNode = (Node*)malloc(sizeof(Node));
newNode->data = arr[i];
newNode->next = *head;
*head = newNode;
}
}
// 打印链表
void printList(Node* node) {
if (node == NULL) return;
printf("%d ->", node->data);
printList(node->next);
}
// 查找第k个节点
Node* getKthNode(Node* head, int k) {
// ...
}
// 在指定节点后插入新节点
void insertAfterNode(Node** head, Node* prevNode, int data) {
if (prevNode == NULL) return;
Node* newNode = (Node*)malloc(sizeof(Node));
newNode->data = data;
newNode->next = prevNode->next;
prevNode->next = newNode;
}
// 在指定节点前插入新节点
void insertBeforeNode(Node** head, Node* targetNode, int data) {
if (targetNode == NULL) return;
Node* newNode = (Node*)malloc(sizeof(Node));
newNode->data = data;
newNode->next = targetNode;
targetNode->prev->next = newNode;
if (targetNode->prev != NULL) targetNode->prev = newNode;
}
// 删除第k个节点
void deleteKthNode(Node** head, int k) {
if (*head == NULL || k <= 0) return;
Node* current = *head;
Node* prev = NULL;
for (int i = 1; i < k && current != NULL; i++) {
prev = current;
current = current->next;
}
if (current == NULL) return; // 如果k超出链表长度
if (prev == NULL) *head = current->next; // 如果k为1,直接替换头节点
else prev->next = current->next;
free(current); // 释放内存
}
// 主函数
int main() {
int arr[] = {1, 2, 3, 4, 5};
int n = sizeof(arr) / sizeof(arr[0]);
Node* head = NULL;
// 创建链表
createList(&head, arr, n);
printf("链表创建成功:\n");
printList(head);
// 示例操作
int k = 2;
Node* kthNode = getKthNode(head, k);
if (kthNode != NULL) {
printf("第%d个节点是:%d\n", k, kthNode->data);
} else {
printf("找不到第%d个节点。\n", k);
}
// 插入操作(示例)
insertBeforeNode(&head, getKthNode(&head, k), k+10);
printList(head);
return 0;
}
```
这个例子中包含了链表的创建、打印、查找、插入和删除操作。记得在实际应用中处理可能的错误条件和边界情况。实验结果截图应包括链表创建后的状态,以及插入和删除操作后链表的新状态。
阅读全文