「C语言基础知识」单链表的创建与读取(含完整代码及详细注释)

学无止境,每当我们接触了新的领域就会发现原来自己要学习的还那么多……这不,小编最近迷上了C语言,但是学习起来也颇为吃力,用了三天时间终于弄懂了单链表的创建与读取,个中滋味实属不易!

学无止境,每当我们接触了新的领域就会发现原来自己要学习的还那么多……

这不,小编最近迷上了C语言,但是学习起来也颇为吃力,用了三天时间终于弄懂了单链表的创建与读取,个中滋味实属不易!正所谓”书山有路勤为径,学海无涯苦作舟”,不过豁然开朗的那一刻,小编觉得值了,那种快乐是热爱学习的人才能体会的,不知大家有没有同感。好吧,感慨就发到这里,下面小编就给大家分享一段单链表创建与读取的完整代码吧(当然,也包括小编的完整注释),感兴趣的童鞋一起来探讨吧。

该程序用来实现从键盘读取整形数并存入单链表相应结点,0为结束标志。最后再一次读取链表结点数据并输出。

创建一个单链表步骤如下:

· 定义一个单链表;

· 创建一个空的单链表;

· 依次从键盘读入数据链入单链表的表尾。

分析:在程序中使用一个单链表只需定义一个指向头结点的指针,该指针被命名为head。空的单链表是一个只有头结点的单链表。创建一个空的单链表需要申请一个结点,该结点的数据字段不存储有效数据,next指针为空指针,让head指向该结点。依次从键盘读入数据链入单链表的表尾,可由一个循环组成。该循环的每一个循环周期从键盘读入一个整型数,如果读入的不是0,则申请一个结点,将读入的数放入该结点,将结点链到链表的表尾。如果读入的数是0,设置最后一个结点的next为NULL,链表创建完成。为了节省插入时间,我们用一个指针指向链表的最后一个结点。在链表的访问中,我们先用一个指针指向链表的第一个结点看看结点是否存在,如果存在则访问该结点,并让指针指向下一结点;如果不存在则结束访问。

程序代码如下:

#include<stdio.h>

#include<stdlib.h>

struct linkRec{

int data;

struct linkRec *next;

};//定义单链表

int main()

{

int x;//存放从键盘输入的值

struct linkRec *head,*p,*rear;//定义结构体类型的指针,用于指向头结点、当前结点及尾结点

head=rear=(struct linkRec *)malloc(sizeof(struct linkRec));//创建一个空链表(头结点)

//创建链表的其它结点

while(1)

{

scanf(“%d”,&x);

if(x==0) break;

p=(struct linkRec *)malloc(sizeof(struct linkRec));//申请一个新结点

p->data=x;//将x的值存入新的结点

rear->next=p;//新结点链到头结点(即初始时的尾结点)的下一结点

rear=p;//p结点作为新的表尾

}

rear->next=NULL;//设置rear尾表尾,其后没有结点了

//读取链表

printf(“链表的内容为:\n”);

p=head->next;//p指向第一个结点

while(p!=NULL)

{

printf(“%d\t”,p->data);

p=p->next;//读取数据后使p指向下一个结点

}

printf(“\n”);

system(“pause”);//为了观察效果,暂停执行

return 0;

}

好了,下面我们运行一下试试效果。

生成解决方案按成功:

「C语言基础知识」单链表的创建与读取(含完整代码及详细注释)

从键盘读取数据并插入链表:

「C语言基础知识」单链表的创建与读取(含完整代码及详细注释)

访问链表:

「C语言基础知识」单链表的创建与读取(含完整代码及详细注释)

OK!程序运行成功,达到预期效果,你Get到没有。

篇幅有限,不详之处请留言。

文章为小编纯手码,仅供交流学习之用,不足之处敬请批评指正。如果你觉得本文对你有帮助请给我点赞并转发给更多的人!

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/86365.html

(0)
上一篇 2024-10-03 05:34
下一篇 2024-10-03 05:40

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信