【问题描述】
设计一个高效算法,将顺序表L中的所有元素逆置,要求算法的空间复杂度为O(1)。
【输入形式】
两行,第一行是输入数据数量,第二行是线性表数据,元素之间用空格间隔。
【输出形式】
输入线性表的逆序,元素之间用空格间隔
【样例输入】
5
1 2 3 4 5
【样例输出】
5 4 3 2 1
【样例说明】
输入数据是整数列,数据间以空格分开。
【评分标准】
必须使用顺序表存储元素,算法空间复杂度O(1),顺序表存储实现逆序。
#includeusing namespace std; const int MAXSIZE = 100; struct seqList { int data[MAXSIZE]; //存放数组 int length; //顺序表长度 }; //创建顺序表,n为顺序表长度 void create(seqList& L,int n) { L.length = 0; for (int i = 0; i < n; i++) { cin >> L.data[i]; L.length++; } } //逆置顺序表 void Reverse(seqList& L) { int temp; //交换中介 for (int i = 0; i > n; create(L,n); Reverse(L); print(L, n); }



