【跟着小甲鱼学C语言】练习总结:用单链表存放一个数组

本文是关于使用C语言通过单链表实现数组存储的练习总结,内容涵盖链表节点定义、用户输入、头插法数据输入及数据展示。在实践中,提到了遇到的如scanf取址符号、NULL大小写、错误处理循环及链表结构体设计等问题,同时分享了相关解决策略和注意事项。

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

还是一个练习的总结

写一个程序用单链表来实现存放一个数组。其中包括单链表节点的定义、用户输入节点的内容、使用头插法输入
数据、显示已经输入的数据等几个功能。代码如下:

#include<stdio.h>
#include<stdlib.h>

//定义单链表节点的结构,它是由一个整形数字和一个指针构成
struct NumArray
{
	int num;
	struct NumArray* next;
};

//getInput函数是用来让用户输入节点的内容的
void getInput(struct NumArray* p_input)
{
	printf("please type in the number\n");
	scanf("%d", &p_input->num);
	fflush(stdin);
	printf("\n");
}

//AddMember函数是使用头插法在链表中插入节点,注意这里要使用两层解引用来修改头指针的值
struct NumArray AddMember(struct NumArray** first)
{
	struct NumArray* newMember;
	
	newMember = (struct NumArray*)malloc(sizeof(struct NumArray));
	if(newMember == NULL)
	{
		printf("Failure\n");
		exit(1);
	}

	getInput(newMember);

	newMember->next = *first;
	*first = newMember;

}

//show函数用来输出所有已经输入进去的值,注意这个for的写法很传神。
struct NumArray show(struct NumArray* first)
{
	struct NumArray* Tp;
	for(Tp = first; Tp!=NULL; Tp = Tp->next)
	{
		printf("%d\n",Tp->num);
	}
}



int main(void)
{
	stru
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值