数据结构 链表 插入一个节点

链表 插入一个节点

经典举例

如图:共有四个节点,将第四个节点插入到①②之间。定义了指针向量p指向第一个节点,指针向量q指向节点④
在这里插入图片描述

定义的节点的数据类型如下:

//节点的数据类型
typedef struct Node
{
    int data; //数据域
    struct Node * pNext; //指针域, 指向跟他本身数据类型一模一样的另外一个数据类型
}NODE, *PNODE; //NODE 等价于 struct Node , PNODE等价于 struct Node *

实现在①②之前插入节点的代码:

q->pNext = p->pNext;
p->pNext = q;

解释:

pNext:节点的指针域
p->pNext : p指针指向的节点(即①)的指针域,所存放的是 下一个元素的地址(即②的地址),表示为节点①指向节点②
q->pNext : q指针指向的节点(即④)的指针域,所存放的是 下一个元素的地址(初始状态下没有指向,所以指针域内为垃圾值)

q->pNext = p->pNext;
从上面的理解不难看出,这句代码的意思就是将 p->pNext 中存放的地址存放到q->pNext(指针域)中,而p->pNext 中存放的地址就是节点②的地址,所以节点②的地址被存放到了节点④中,那么就有节点④指向节点②,节点②与节点①的指向关系消失,如下图
在这里插入图片描述
在上一步,已经将节点①的指针域中的地址赋值给了q->pNext,此时节点①指针域是空的。

p->pNext = q;
将指针变量q存放的的地址存放到p->pNext(指针域)中,而q存放的是节点④的地址,所以节点④的地址被存放到了节点①中,那么就有节点①指向节点④

在这里插入图片描述
这样就完成了简单的插入。

小记

个人的看法,主要还是笔记的作用,同时也能够点拨一些和我一样初学者,虽然短短千字的博客,觉得可能还会漏洞百出,望指正批评。
但是鄙人认为主体方向没有问题,才敢发布

  • 22
    点赞
  • 111
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值