设计一个高效算法,将顺序表L的所有元素逆置 要求算法的空间复杂度为O(1)。
算法思想:
第一个元素和最后一个互换位置,第二个元素与倒数第二个元素互换位置......(首尾互换)。
代码:
typedef struct{
ElemType *data;
int MaxSize;
int length;
}Seqlist;
void Reverse(Seqlist &L) {
ElemType temp; //辅助变量
for (int i = 0; i < L.length / 2; i++) {
temp = L.data[i];
L.data[i] = L.data[L.length - 1 - i];
L.data[L.length - 1 - i] = temp;
}
}