这里涉及到数据结构中顺序表的实现、删除、插入、查找等知识,请查看:数据结构 -> 线性表
设计一个高效的算法,将顺序表的所有元素逆置,要求算法的空间复杂度为O(1)。
算法思想:扫描顺序表L的前半部分元素,对于元素L.data[i] (0<=i<L.lengh/2),将其余后半部分对应元素L.data[L.length-i-1]进行交换。本题代码如下:
void Reverse(Sqlist &L){
Elemtype temp; //辅助变量
for(i=0;i<L.length/2;i++){
temp=L.data[i]; //交换 L.data[i]与 L.data[L.length-i-1]
L.data[i]=L.data[L.length-i-1];
L.data[L.length-i-1]=temp;
}
}