【数据结构】如何创建一个单链表
创建单链表
如何创建一个单链表?那不是非常简单嘛?单链表与线性表不同,由于它属于一种动态结构,可以根据节点插入位置的不同,分为前插法和后插法。

1.前插法创建单链表
前插法就是每次先输入一个节点,然后将这个节点插入到头节点之后,依次往复,就可以创建一个单链表。

(1)首先创建一个链表,将链表的头节点指针先设为空。
(2)然后创建一个节点,然后将这个节点插入即可。
下面将用代码解释如何插入此节点。

讲一讲前插法的一些难点;
(1)第16行的这里,把L指向的节点给新输入节点的指针。
(2)前插法的插入顺序是与逻辑顺序相反的,拿数组来说,输入数字都是从左往右输入;但是链表前插法是将每个数字插入到最前面,比如输入的是1 2 3; 但是输出其实存储顺序是 3 2 1;

然后就是这个样子。(往后顺序顺推即可!)

2.后插法创建单链表
相对于前插法,如果题目输入没有特别要求的话,一般使用后插法使用即可。如果题目有特殊要求的话可以采用前插法。而我们更应该注重后插法的使用与掌握。
书上有一句话是这样说的:“不同的是,为了使新节点能够插入表尾, 需要增加一个尾指针指向链表的尾节点”, 这句话比较重要,先牢记,让我们进入后插的学习中。
(1)和前插法一样,我们都要先生成一个新的节点p,以方便节点插入。
(2)这一步是后插法最难理解的地方,课本在这一步的描述是:“将新节点*p插入尾节点*r之后”, 我们一定要知道当前 r 节点到底在哪,我们一开始会将 r 指向头节点。我们每输入一个新的节点p,就插入到尾指针之后 ,然后再让尾指针后移到新节点p上 , 如果这一步理解了,那么后插法基本没什么问题了。
理论存在,直接上代码。
最后,让读者看一下两个插入方法的区别:

节点定义与课本相同

