没有头节点的双向循环链表现在交换任何两个节点(这两个节点不一定相邻)

电脑杂谈  发布时间:2020-07-13 17:11:42  来源:网络整理

链表的头结点_带头结点的双循环链表_for循环 链表

没有前导节点的双向循环列表,现在交换任何两个节点(这两个节点不一定相邻),如何编写代码?

例如,双重循环链表确实很烦人,我不知道该怎么做! ! !

链表的头结点_for循环 链表_带头结点的双循环链表

------解决方案--------------------

您使用一张纸绘制一张图片,并且在绘制时会明白. 我所学习的数据结构就是这种情况. 如果您不这样做的话,这是非常抽象且难以理解的.

链表的头结点_for循环 链表_带头结点的双循环链表

对于您的问题,实际上并不难,我会给您提供想法

由于它是一个双向链表带头结点的双循环链表,所以您可以通过基于给定节点的前两个成员来了解前节点和后节点

for循环 链表_带头结点的双循环链表_链表的头结点

如果切换节点带头结点的双循环链表,实际上并没有更改位置,只需更改指针即可.

上一个nodeA nextA一个节点及其前后节点

链表的头结点_带头结点的双循环链表_for循环 链表

prevB nodeB nextB B节点及其前后节点

作为交换,可以将prevA的下一个成员更改为nodeB nextA,然后可以将nodeA nextA的prev成员更改为nodeB,然后可以将nodeB的prev next成员更改为prevA和nextA. 这会将nodeB放在prevA和nextA中. 之间(“之间”只是一个视觉声明,实际内存地址不会移动,链表不是顺序存储结构)

然后将nodeA放在prevB和nextB之间,与上面相同.

由于它是一个双向链表,因此您无需考虑头节点和尾节点的特殊情况.


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-279063-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      • 赵崇嶓
        赵崇嶓

        同时也说明12海里主权我们已经坐实了

      • 张蔚
        张蔚

        但可以肯定

        • 黎明
          黎明

          但综合性能比我们的052C和052D都要先进

      热点图片
      拼命载入中...