题目:设计一个高效算法,将顺序表L的所有元素逆置,要求算法的空间复杂度为O(1)。
算法思想:扫描顺序表的L的前半部分元素,对于元素L.data[i](0<=i<L.length/2),将其与后半部分的对应元素L.data[L.length-i-1]进行交换。
本题代码如下:
cpp
void Reverse(SqList &L){
ElemType temp; //辅助变量
for(int i=0;i<length/2;i++){
temp=L.data[i]; //交换L.data[i]与L.data[length-i-1]
L.data[i]=L.data[length-i-1];
L.data[length-i-1]=temp;
}
}