顺序表逆转是顺表基本操作之一,本将讨论顺序表逆转的基本方法,以及用顺序表逆转解决实际题目,本文将讨论三个问题
题目一
顺序表逆转
方法:直接循环将首尾元素交换。
void Reverse(Sqlist &L){
int mid = (L.length-1)/2;
for(int i=0; i<=mid; i++){
int tmp = L.data[i];
L.data[i] = L.data[L.length-1-i];
L.data[L.length-1-i] = tmp;
}
}
题目二
已知在一维数组A[m+n]
中一次存放两个线性表(a1,a2,a3,⋯ ,am)(a_1,a_2,a_3,\cdots,a_m)(a1,a2,a3,⋯,am)和(b1,b2,b3,⋯ ,bn)(b_1,b_2,b_3,\cdots,b_n)(b1,b2,b3,⋯,bn)。试编写一个函数,将数组中两个顺序表的位置互换,即将(b1,b2,b3,⋯ ,bn)(b_1,b_2,b_3,\cdots,b_n)(b1,b2,b3,⋯,bn)放在(a1,a2,a3,⋯ ,am)(a_1,a_2,a_3,\cdots,a_m)(a