C语言链表反转:createlist() 函数实现
C语言链表反转:createlist() 函数实现
本文将详细解析C语言链表反转中 createlist() 函数的实现。该函数负责创建链表并接收用户输入的数据。
代码示例
#include <stdio.h>
#include <stdlib.h>
struct ListNode {
int data;
struct ListNode *next;
};
struct ListNode *createlist() {
struct ListNode *head = NULL;
struct ListNode *tail = NULL;
int n;
scanf('%d', &n);
while (n != -1) {
struct ListNode *newNode = (struct ListNode*)malloc(sizeof(struct ListNode));
newNode->data = n;
newNode->next = NULL;
if (head == NULL) {
head = newNode;
tail = newNode;
} else {
tail->next = newNode;
tail = newNode;
}
scanf('%d', &n);
}
return head;
}
代码解释
- 初始化:
head和tail指针初始化为NULL,表示空链表。 - 输入数据:使用
scanf()函数循环读取用户输入的整数,直到输入-1为止。 - 创建节点:每次循环中,使用
malloc()函数分配一个新的ListNode结构体内存,并将用户输入的整数赋值给newNode->data,newNode->next初始化为NULL。 - 连接节点:
- 如果是第一个节点,则将
head和tail指针指向新节点。 - 否则,将
tail->next指向新节点,并将tail指针指向新节点,实现链表的连接。
- 如果是第一个节点,则将
- 返回链表头指针:最后返回链表的头指针
head。
代码功能
该 createlist() 函数实现了以下功能:
- 动态创建链表节点。
- 接收用户输入的整数作为链表节点的数据。
- 将节点连接成链表,并返回链表的头指针。
总结
本篇博客详细解析了 createlist() 函数的实现过程,通过示例代码和解释,帮助读者理解如何创建链表并进行数据输入。在后续的链表操作中,我们可以使用该函数来创建链表,并进行其他操作。
欢迎关注我的博客,获取更多关于C语言和数据结构的知识。
原文地址: https://www.cveoy.top/t/topic/fFEk 著作权归作者所有。请勿转载和采集!