list中create函数的讲解

这篇博客介绍了如何使用C语言创建链表,包括初始化表头、动态分配内存以及将新节点连接到链表中。提供了两种不同的实现方式,一种是在创建时就考虑表头的情况,另一种则是在创建过程中逐步添加节点。示例代码详细展示了如何接收用户输入并存储到链表节点中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

create()的功能应该包含为创建申请一块结构体所需的空间,并将其与原表尾连接。

typedef struct xvesheng {
	int xvehao;
	int score;
	char name[20];
	struct xvesheng *next;
} xvesheng;

上方为事先定义的结构

最初创建时应返回表头的地址,以确定链表头的地址便于访问

xvesheng *create ();

代码实现应该为:

xvesheng *create(int number) {
	xvesheng *head = NULL, *ptr = NULL;
	int xvehao, score;
	char name[20];
	while (number--) {
		if (head == NULL) {
			ptr = (xvesheng *)malloc(sizeof(xvesheng));
			head = ptr;
		} else {
			ptr->next = (xvesheng *)malloc(sizeof(xvesheng));
			ptr = ptr->next;
		}
		scanf("%d%d", &xvehao, &score);
		gets(name);
		chushihua(ptr, xvehao, score, name);
	}
	return head;
}


        因为需要区分是否为表头,所以需要进行选择,所以有一大段选择结构,当我们提前为第一个节点申请空间时,把第一个节点不储存数据时,代码会简单很多。

xvesheng *create(int number) {
	int xvehao, score;
	char name[20];
	xvesheng *ptr = NULL;
	xvesheng *head = NULL;
	
	head = (xvesheng *)malloc(sizeof(xvesheng));
	ptr = head;
	while (number--) {
		ptr->next = (xvesheng *)malloc(sizeof(xvesheng));
		ptr = ptr->next;
		printf("请依次输入学号,成绩,姓名(中间以换行分割)\n");
		scanf("%d%d", &xvehao, &score);
		gets(name);
		chushihua(ptr, xvehao, score, name);
	}
	return head;
}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值