1、设计一个高效算法,将顺序表L的所有元素逆置,要求算法的空间复杂度为O(1)
void Reverse(SqList &L){
ElemType temp;//辅助变量
for(int i=0;i<L.length/2;i++){
temp=L.data[i];
L.data[i]=L.data[L.length-i-1];
L.data[L.length-i-1]=temp;
}
}
2、对于长度为n的顺序表L,编写一个时间复杂度为O(n),空间复杂度为O(1)的算法,该算法删除线性表中所有值为x的数据元素。
算法思想:用k记录顺序表L中等于x的元素个数,边扫描L边统计k,并将不等于x
的元素前移k个位置,最后修改L的长度
void del_x(SqList &L,ElemType x){
int k=0,i=0;
while(i<L.length){
if(L.data[i]==x){
k++;
}else{
L.data[i-k]=L.data[i