单链表之头部插入节点

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.2、箭头非指向 (1)先回顾一下如何访问结构体当中的成员?没错,有符号“.”和符号“->” 两种方 式,这两种方式的区别这里就不在重复,理解这一点对与链表的学习有
很大的帮助。 (2)注意写代码过程中的箭头符号,和指针的指向是没有关系的,它们是两码 事,很 容易搞混。在现实生活中用->表示指向是常识,但是在 C 语言中->是用 指针的方式来访 问结构体当中的某个成员。换句话说链表中节点的连接过程 和程序中的->没有关系;链 表中的节点是通过指针的指向来连接的,编程中表 现为给指针变量赋值,实质是把后一 个节点的首地ቤተ መጻሕፍቲ ባይዱ赋值给前一个节点的 pNext 元素。请记住,箭头非指向,否则对链表的 理解会造成不小的困扰。
伪代码: insert_head() {
第 1 步: 新节点的 pNext 指向原来的第一个节点 第 2 步: 头节点的 pNext 指向新节点的地址 } 具体代码实现: void insert_head(struct node *pH, struct node *new) { new->pNext = pH->pNext; pH->pNext = new; } 请思考一下第一步和第二步的顺序可不可以交换一下? 如果我们先执行第二步,将头结点的 pNext 指针指向了新节点的首地址, 当我们想要执行第一步的时候就会发现原来的第一个有效节点的地址已经 丢失了,第一步自然也就做不下去了,所以这两步的顺序还是要注意一下的。
摘取自【朱有鹏 c 语言内核深度解析】
单链表之头部插入节点
朱有鹏
1、单链表的算法之从头部插入节点 1.1、链表头部插入思路解析
在分析链表的算法的时候一定要注意心里有数,先搞清楚完成这个算法需要 哪几步,每步做什么,然后再去思考每步的代码实现是什么,否则就会只看到指 针指来指去,很快就晕头转向了。
头插入节点的两个重要步骤: (1)新节点的 pNext 指向原来的第一个节点的首地址,即新节点和原来的 第一个节点 相连。 (2)头结点的 pNext 指向新节点的首地址,即头结点和新节点相连。 经过这两步新节点就插入了头结点和原来的第一个节点之间,成为新的第一 个节点。 这两个步骤简单来讲就是先连接尾巴,后连接头部。
相关文档
最新文档