(3)已知p指向双向循环链表中的一个结点,其结点结构为data、prior、next这3个域,设计算法change(p),交换p所指向的结点及其前驱结点的顺序。
时间: 2024-05-27 22:12:47 浏览: 120
试写出一个计算单链表中结点个数的算法,其中指针p指向该链表的第一个结点。
可以回答。
算法如下:
1. 判断p指向的结点是否是头结点,如果是则直接返回。
2. 交换p所指向的结点及其前驱结点的顺序,具体操作如下:
- 将p的前驱结点保存到temp中。
- 将p的前驱结点的前驱结点指向p。
- 将p的前驱结点的next指向p的next。
- 将p的next指向p的前驱结点。
- 将p的前驱结点指向p的next。
- 将p的next的前驱结点指向p的前驱结点。
- 将p指向p的前驱结点。
3. 返回操作完成后的p指针。
阅读全文