今天主要来讲一讲单链表的插入与删除操作的步骤和算法解释。这是单链表最基本的操作但是也是最重要的基础之一,有些地方还比较容易出错。下面我就结合源代码在上面加上注释来解释每一步的作用。
**一、单链表的插入操作**
1、图示(截图来自网易云课堂鱼C工作室《数据结构和算法》课程视频)
2、 要想将结点s插入到ai与ai+1之间,不需要移动数据元素,只需要在ai与ai+1之间插入一个新的结点,也就是我们要插入的结点s。关键就是要修改结点p的指针域,使得结点s称为其后继。修改指针的链接的主要操作语句是:
s->next=p->next; //把结点p的后继作为结点s的后继;
p->next=s; //把结点s作为结点p的后继;
注意这两个语句的顺序不能调换不能调换不能调换!!!
为什么呢?如果调换①和②的顺序,那么插入操作就无法完成,并且会丢失ai结点的地址以及ai及其后面所有结点的信息。
3、下面演示插入操作的算法: