08-数据结构阶段复习一
题目描述
用C++实现含头结点的单链表,然后实现单链表的两个结点交换位置。
注意不能简单交换两个结点包含数据,必须通过修改指针来实现两个结点的位置交换
交换函数定义可以参考:
swap(int pa, int pb) //pa和pb表示两个结点在单链表的位置序号
swap (ListNode * p, ListNode * q) //p和q表示指向两个结点的指针
输入
第1行先输入n表示有n个数据,接着输入n个数据
第2行输入要交换的两个结点位置
第3行输入要交换的两个结点位置
输出
第一行输出单链表创建后的所有数据,数据之间用空格隔开
第二行输出执行第1次交换操作后的单链表数据,数据之间用空格隔开
第三行输出执行第2次交换操作后的单链表数据,数据之间用空格隔开
如果发现输入位置不合法,输出字符串error,不必输出单链表
输入样例
5 11 22 33 44 55
1 4
2 6
输出样例
11 22 33 44 55
44 22 33 11 55
error
注意要用链表实现!
->交换过程如图
#include<iostream>
using namespace std;
typedef struct node//单链表
{
int data;
struct node *next;
}node;
void create(node *L,int &n)//构造单链表
{
L->next=NULL;