在数据结构的学习中,链表是学习之路上的第一个障碍,链表涉及到指针与结构体这两个C语言重难点语法的运用,所以并不太好学懂。作为刚刚接触数据结构与算法的初学者,本人将在本篇文章中尝试讲清楚链表这种数据结构的定义,赋初值,与打印一个链表。1.定义一个链表
在链表的定义中,首先定义一个结构体,包含数据域data与指针域next,为了后面的一系列操作,我们再利用typedef函数将结构体变量重新命名为Node,再命名一个结构体指针Link List
2.建立一个头节点与实现链表的初始化赋值
为了实现链表的初始化赋值,我们要将指向链表的指针的地址传入函数,并用malloc函数为链表创建一个头节点,为了以后释放内存方便,我们在定义两个Node类型的指针,一个的作用是创建新的节点(NewNode),另一个的作用是改变原先节点的指向(p),在循环中,如果不输入CTRL+z,则会一直输入,在循环过程中,利用malloc函数创建新的节点,并未节点赋予初值,随后,让p指向上一个节点,p->next指向新创建的节点,随后让p指向新创建的节点,当循环结束后,让NewNode->next指向NULL。
3.链表的打印,
在链表的打印中,我们无需更改链表的数值,所以仅需将指向链表指针传入即可,在打印中,我们需要两个Node类型的指针,一个负责向后移动直至链表末尾,一个负责打印当前所指向的节点的数值(temp),即可完成链表的打印
后续将介绍链表的删除节点,插入节点,与查找节点