关于单链表插入节点的伪算法分析
- 单链表主要就是由一个一个节点组成的。我们可以根据一个链表指针就能确定一个链表中的所有参数。现在规定纸箱左边节点的指针就是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的地址。上面的伪代码就是利用了这样的思路。实际上所谓的链表指向的变化无非就是借助于地址的赋值而已。