还是一个练习的总结
写一个程序用单链表来实现存放一个数组。其中包括单链表节点的定义、用户输入节点的内容、使用头插法输入
数据、显示已经输入的数据等几个功能。代码如下:
#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

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

被折叠的 条评论
为什么被折叠?



