单链表(4)

尾插函数

尾插函数跟头插函数唯一的不同就是找尾巴

尾插函数:

首先是动态申请一个新结点

把val放到新结点里面当新结点的data

然后在单链表里面找尾巴

单链表(4)_第1张图片

比如说指针p找到尾巴了,现在将指针p指向新的结点,尾插就好了

这里的p类似于头插函数中的plist

单链表(4)_第2张图片

先后

单链表(4)_第3张图片

再前

单链表(4)_第4张图片

单链表(4)_第5张图片

现在来测试一下

单链表(4)_第6张图片

单链表(4)_第7张图片

可以看到头插是逆序的,尾插是顺序的。

还有一种尾插方法是将尾插函数内部的头结点plist移动来寻找尾巴,找到尾巴后插入新结点p

单链表(4)_第8张图片

但前面说了移动plist不好,plist最好一直不要动。虽然这里移动plist也可以实现且不影响外面的实际数据,因为这是函数内部的头结点,其只在函数内部移动。函数外面的真正的数据的头结点并没有移动改变。但也最好不这样。

这里的头结点是不动的!

单链表(4)_第9张图片

外面不动,里面移动操作

单链表(4)_第10张图片

你可能感兴趣的:(数据结构)