当前位置:   article > 正文

形象的理解双向链表之插入_双向链表的插入顺序

双向链表的插入顺序

形象的理解双向链表之插入

总体思路—前驱后继
链表中前驱和后继就是指当前结点的前一个和后一个结点分别是什么,我们把要插入的结点作为当前结点。如图所示:

对存放了x的结点来说,q p分别是前驱和后继结点
q是为了便于理解自己添加的,对于原链表,实际上有:

p->prior=q;
p->prior->next=p;//q->next=p能理解吧?把q用p->prior代就完事了
  • 1
  • 2

一.s的前驱和后继

1.前驱(即图①)—和前面结点相连

s->prior=q;
  • 1

2.后继(即图③)—和后面结点相连

s->next=p;
  • 1

至此,已经实现了单方向的插入,我们还需进行第二步

二.p的前驱和q的后继

1.p的前驱(即图④)

p->prior=s;
  • 1

1.q的后继(即图②)

q->next=s;
  • 1

至此,双向链表的思路就结束了,然后把数据e存放进s结点

再按照图中的顺序,总结就是:s前驱q后继;s后继p前驱

//再次说明q只是楼主为了方便理解自己加的,总是绕糊涂的小伙伴们也可以试着把三个结点都写一个符号
//完整代码就按照书本规范写了,只有s&p
完整代码:
s->data=e;			 //将要插入的数据e存放进s
s->prior=p->prior;  //s前驱,等同s->prior=q
p->prior->next=s;   //q后继,等同q->nexr=s;
s->next=p;			//s后继
p->prior=s;			//p前驱

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号