C语言实现链表创建、输出、删除与插入操作的完整代码及注意要点
以下是用 C 语言实现上述链表功能的代码: ```c #include <stdio.h> #include <stdlib.h> // 定义链表节点结构体 typedef struct Node { int data; struct Node *next; // 构造函数,初始化节点 Node(int x) : data(x), next(NULL) {} } Node; // 定义操作状态枚举类型 typedef enum OprStatus { OK, ERROR } OprStatus; // 创建链表函数 Node* create() { Node* head = NULL; return head; } // 输出链表函数 OprStatus show(Node* head) { if (head == NULL) { return ERROR; } Node* curr = head; while (curr!= NULL) { printf("%d ", curr->data); curr = curr->next; } printf("\n"); return OK; } // 删除链表数据函数 OprStatus delete(Node* head, int i) { if (head == NULL) { return ERROR; } if (i == 1) { Node* temp = head; head = head->next; free(temp); return OK; } Node* curr = head; int count = 1; while (curr!= NULL && count < i - 1) { curr = curr->next; count++; } if (curr == NULL || curr->next == NULL) { return ERROR; } Node* temp = curr->next; curr->next = curr->next->next; free(temp); return OK; } // 插入数据函数 OprStatus insert(Node* head, int data) { Node* newNode = (Node*)malloc(sizeof(Node)); newNode->data = data; newNode->next = head; head = newNode; return OK; } int main() { Node* head = create(); insert(head, 10); insert(head, 20); insert(head, 30); show(head); delete(head, 2); show(head); return 0; } ``` 额外需要注意的逻辑点: 1. 在删除节点时,要处理好删除头节点和中间节点的不同情况。 2. 插入节点时,要确保内存分配成功,否则可能导致程序崩溃。 3. 在操作链表的过程中,注意边界情况,如空链表、只有一个节点的链表等。 ######[AI写代码神器 | 609点数解答 | 2024-12-18 12:18:21]
- Python实现Q老师成绩管理任务:修改与查看学生成绩(字节豆包 | 191点数解答 | 2025-12-20 20:55:41)68
- Python 代码助力 Q 老师高效管理班级学生成绩:修改与查看一键搞定(字节豆包 | 326点数解答 | 2025-12-27 20:48:12)69
- C++实现顺序存储结构基本操作:初始化、插入、删除等全解析(GPT | 1743点数解答 | 2024-09-26 00:20:17)279
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)343
- C 语言实现单链表全功能操作:创建、增删查改与逆置测试( | 4796点数解答 | 2024-03-28 16:24:20)339
- C++实现单循环链表:初始化、插入、删除等操作及测试验证(GPT | 2102点数解答 | 2024-10-13 13:39:58)154
- Java 实现通用文件存储系统:含随机读写与空闲空间回收(字节豆包 | 686点数解答 | 2024-11-21 16:25:51)222
- 工程师必知:软件系统用户文档编写九大要点揭秘(百度文心 | 350点数解答 | 2023-11-09 18:23:53)182
- Java 创建 HTTP POST 请求实现文件上传:代码示例与注意要点 (字节豆包 | 300点数解答 | 2024-12-06 16:07:20)335
- C语言实现多班级学生信息管理系统:含增删改查与多样排序功能(GPT | 2547点数解答 | 2024-12-15 22:08:58)356
- C语言实现学生信息管理系统:含增删改查与多种排序功能(GPT | 6408点数解答 | 2024-12-15 22:10:03)347
- C#工程师必知:数组、链表、哈希、队列、栈数据结构优缺点大揭秘! (百度文心 | 561点数解答 | 2023-11-09 17:56:30)258