#include<stdio.h>
#define Maxsize 50 //表最大长度
typedef struct
{
int shu[Maxsize]; //顺序表元素
int length; //顺序表当前长度
}SXB;
int Shan(SXB L);
int main()
{
SXB L;
int i=0;
printf("请输入顺序表元素,输入-1结束:");
scanf("%d",&L.shu [i]);
L.length =1;
while(L.shu [i]!=-1&&i<Maxsize-1)
{
i++;
L.length ++;
scanf("%d",&L.shu [i]);
}
if(i<Maxsize-1) //表示没有达到最大限度,由于输入-1而结束输入,所以要除去-1那个元素
L.length--;
Shan(L);
return 0;
}
int Shan(SXB L)
{
if(L.length==0)
{
printf("顺序表为空!!\n");
return 0;
}
int i,temp;
for(i=0;i<L.length/2;i++)
{
temp=L.shu [i];
L.shu [i]=L.shu [L.length -i-1];
L.shu [L.length -i-1]=temp;
}
printf("逆置后顺序表元素位置如下:\n");
for(i=0;i<L.length ;i++)
printf("%5d",L.shu [i]);
putchar('\n');
return 0;
}
设计高效算法,将顺序表元素逆置,空间复杂度为O(1)
于 2022-07-22 10:32:48 首次发布