要到截止日期了,冲冲冲!
描述
利用双向循环链表表示一个整数序列,指定一个结点位置用p指向该结点,交换p所指向的结点及其前驱结点的顺序。
输入
多组数据,每组数据有三行,第一行为链表的长度n,第二行为链表的n个元素(元素之间用空格分隔),第三行为p所指向的结点位置。当n=0时输入结束。
输出
对于每组数据分别输出一行,依次输出交换结点顺序后的链表元素,元素之间用空格分隔。
输入样例 1
5
44 11 22 33 55
3
6
22 33 11 66 44 55
6
0
输出样例 1
44 22 11 33 55
22 33 11 66 55 44
这个题在交换结点的代码部分大家可以自由发挥,我也是在纸上画来画去写出来的,不一定是最简单的。
代码
#include <bits/stdc++.h>
using namespace std;
typedef struct link {
int data;
struct link* prior;
struct link* next;
}link,*linklist;
void Create(linklist& L,int n)
{
L = new link;
linklist p, r;
L-