链表-指定位置的插入

时间:2021-04-15 12:10:37   收藏:0   阅读:0

在给定插入位置的前提下,给定结点插入操作,只要局部修改结点的链域即可。

插在表头:

假设已存在一个以 head 为首指针的链表,新插入的结点 “陈” 已经创建完毕,用 p指针 指示。

技术图片

使结点 “张” 作为结点 “陈” 的后继结点,然后执行 head = p;修改表头指针 head 使其指向新的头结点 “陈”。

注意对比图形显示与描述语句之间的对应关系。

 

---------------------------分---------------------------割---------------------------线---------------------------

 

插在表中:

技术图片

 

 

假设将新节点 “陈” 插在结点 “王” 的后面,那么结点 “李” 就变成了结点 “陈” 的后继结点,假设已知指向结点“王” 的指针q,结点李的地址就是 q->next,因此只要完成 “王”,“陈”,“李” 之间的链接操作即可:

① 先执行 p->next = q->next;

② 再执行 q->next = p;

显然,指定位置的插入,它的时间复杂度是O(1)的。

技术图片

 

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!