继续更新:2020王道课后习题P18,综合应用题2:将顺序表L中所有的元素逆置,空间复杂度为O(1)。
分析:空间复杂度为O(1)说明算法原地工作,所需要的辅助空间为常量,本体算法实现只需要借助一个额外辅助空间,所以符合要求。还是那句话,话休繁琐,代码如下:
//将顺序表L中所有元素逆置,要求空间复杂度为O(1)
# include <stdio.h>
#include <stdlib.h>
# define InitSize 100
#include <time.h>
typedef int ElemType;
typedef struct{
ElemType *data;
int Maxsize,length;
}SqList;
//插入操作
bool ListInsert(SqList &L,int i,ElemType e){
if(i<1||i>L.length+1)
return false;
if(L.length>L.Maxsize)
return false;
for(int j=L.length;j>=i;j++)
L.data[j]=L.data[j-1];
L.data[i-1]=e;
L.length++;
return true;
}
//逆置操作
bool reverse(SqList &L){
int 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]=