没有合适的资源?快使用搜索试试~ 我知道了~
首页单链表之头部插入节点.pdf
单链表之头部插入节点.pdf
需积分: 43 416 浏览量
更新于2023-05-27
评论
收藏 667KB PDF 举报
比较适合于大学生面试公司笔试时候的基础性的数据结构考察。 在分析链表的算法的时候一定要注意心里有数, 先搞清楚完成这个算法需要 哪几步, 每步做什么, 然后再去思考每步的代码实现是什么, 否则就会只看到指 针指来指去, 很快就晕头转向了。 头插入节点的两个重要步骤: (1) 新节点的 pNext 指向原来的第一个节点的首地址, 即新节点和原来的 第一个节点 相连。 (2) 头结点的 pNext 指向新节点的首地址, 即头结点和新节点相连。 经过这两步新节点就插入了头结点和原来的第一个节点之间, 成为新的第一 个节点。
资源详情
资源评论
资源推荐

单链表之头部插入节点
朱有鹏
1、单链表的算法之从头部插入节点
1.1、链表头部插入思路解析
在分析链表的算法的时候一定要注意心里有数,先搞清楚完成这个算法需要
哪几步,每步做什么,然后再去思考每步的代码实现是什么,否则就会只看到指
针指来指去,很快就晕头转向了。
头插入节点的两个重要步骤:
(1)新节点的 pNext 指向原来的第一个节点的首地址,即新节点和原来的
第一个节点 相连。
(2)头结点的 pNext 指向新节点的首地址,即头结点和新节点相连。
经过这两步新节点就插入了头结点和原来的第一个节点之间,成为新的第一
个节点。
这两个步骤简单来讲就是先连接尾巴,后连接头部。
伪代码:
insert_head()
{
第 1 步: 新节点的 pNext 指向原来的第一个节点
第 2 步: 头节点的 pNext 指向新节点的地址
}
具体代码实现:
void insert_head(struct node *pH, struct node *new)
{
new->pNext = pH->pNext;
pH->pNext = new;
}
请思考一下第一步和第二步的顺序可不可以交换一下?
如果我们先执行第二步,将头结点的 pNext 指针指向了新节点的首地址,
当我们想要执行第一步的时候就会发现原来的第一个有效节点的地址已经
丢失了,第一步自然也就做不下去了,所以这两步的顺序还是要注意一下的。
1.2、箭头非指向
(1)先回顾一下如何访问结构体当中的成员?没错,有符号“.”和符号“->”
两种方 式,这两种方式的区别这里就不在重复,理解这一点对与链表的学习有
















安全验证
文档复制为VIP权益,开通VIP直接复制

评论0