2020-08-29

关于单链表插入节点的伪算法分析

  • 单链表主要就是由一个一个节点组成的。我们可以根据一个链表指针就能确定一个链表中的所有参数。现在规定纸箱左边节点的指针就是p,那么我们新建了一个节点,我们同时新建一个节点,这个节点就被q所指向。为了便于叙述,我们首先确定p所指向的节点叫做M,p所指向的节点的后面那个节点叫做N,我们新建的一个节点的名字叫K,我们知道一个节点可以分为数据域和指针域,那么我们将数据域用D来表示,将指针域用P来表示。那么两个节点的初始关系就是M指向N。
  • 我们的目的就是将K插入到M和N之间。
  • 现在的两种算法的伪代码如下:现在有两种思路插入该节点,第一种思路就是先将M指向K,再将K指向N;第二种就是先将K指向N,再将M指向K;通过具体的分析,我们发现第二种方法更好。下面介绍两种方法的伪代码。
  • 第一种(其中p,q,r分别是指向节点的指针): r = p->pNext; p->pNext = q; q->pNext = r;
    在这里插入图片描述
    在这里插入图片描述
  • 第二种(其中p,q分别是指向节点的指针): q->pNext = p->pNext; p->pNext = q;
    在这里插入图片描述
    在这里插入图片描述
  • 总结起来第一种方法相对复杂,第二种方法相对简单。上面的伪代码实际上还是用到了指针的知识,我们通常情况所说的谁指向谁也就是说的谁保存了谁的地址。比如两个变量a,b如果说a要指向b,我们就要将a这块内存的内容保存为b的地址。上面的伪代码就是利用了这样的思路。实际上所谓的链表指向的变化无非就是借助于地址的赋值而已。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值