数据结构 已知P指向双向循环链表中的一个结点,其结点结构为datapriornext三个域,写出算法change(p),交换 p所指向的结点和它的前缀结点的顺序。
Posted Aiden (winner)
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构 已知P指向双向循环链表中的一个结点,其结点结构为datapriornext三个域,写出算法change(p),交换 p所指向的结点和它的前缀结点的顺序。相关的知识,希望对你有一定的参考价值。
分析:
知道双向循环链表的一个结点,与前驱交换涉及到四个结点(p结点、前驱结点、前驱结点的前驱结点,后继结点)六条链。
void Exchange(LinkedList p)
//p是双向循环链表中的一个结点,本算法将p所指结点与其前驱结点交换
q=p->Llink;
q->Llink->rlink=p; //p的前驱的前驱之后继为p
p->Llink->=q->Llink;//p的前驱指向其前驱的前驱
q->rlink=p->rlink; //p的前驱的后继为p的后继
q->Llink=p; //p与其前驱交换
p->rlink->Llink=q; //p的后继的前驱指向原p的前驱
p->rlink=q; //p的后继指向其原来的前驱
//算法exchange结束
以上是关于数据结构 已知P指向双向循环链表中的一个结点,其结点结构为datapriornext三个域,写出算法change(p),交换 p所指向的结点和它的前缀结点的顺序。的主要内容,如果未能解决你的问题,请参考以下文章