
没有前导节点的双向循环列表,现在交换任何两个节点(这两个节点不一定相邻),如何编写代码?
例如,双重循环链表确实很烦人,我不知道该怎么做! ! !

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

对于您的问题,实际上并不难,我会给您提供想法
由于它是一个双向链表带头结点的双循环链表,所以您可以通过基于给定节点的前两个成员来了解前节点和后节点

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

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
但可以肯定
但综合性能比我们的052C和052D都要先进
同时也说明12海里主权我们已经坐实了