酷代码 AI
菜单
全部AI  /  热门  /  AI写代码神器
服务商

c语言链表根据输入数据的顺序创建包含头结点的链表,新数据总是插入到链表首结点之前,如果原链表为空链表,则新结点作为链表首结点。代码

以下是用 C 语言实现的根据输入数据顺序创建包含头结点链表的代码,新数据总是插入到链表首结点之前,如果原链表为空链表,则新结点作为链表首结点: ```c #include <stdio.h> #include <stdlib.h> // 定义链表节点结构体 typedef struct Node { int data; struct Node *next; } Node; // 创建新节点 Node *createNode(int data) { Node *newNode = (Node *)malloc(sizeof(Node)); newNode->data = data; newNode->next = NULL; return newNode; } // 插入节点到链表头部 void insertAtHead(Node head, int data) { Node *newNode = createNode(data); newNode->next = *head; *head = newNode; } // 打印链表 void printList(Node *head) { Node *current = head; while (current!= NULL) { printf("%d ", current->data); current = current->next; } printf("\n"); } // 释放链表内存 void freeList(Node *head) { Node *temp; while (head!= NULL) { temp = head; head = head->next; free(temp); } } int main() { Node *head = NULL; // 初始化为空链表 int num; printf("请输入数据(输入 -1 结束):"); scanf("%d", &num); while (num!= -1) { insertAtHead(&head, num); scanf("%d", &num); } printf("链表内容:"); printList(head); freeList(head); return 0; } ``` 额外需要注意的逻辑点: 1. 要注意内存分配和释放,避免内存泄漏。 2. 处理输入数据时,要做好错误输入的判断和处理。 3. 对于链表的操作,要注意边界情况,如空链表和只有一个节点的情况。 [2024-12-18 15:06:33 | AI写代码神器 | 484点数解答]

相关提问