*设计一个高效算法,将顺序表L的所有元素逆置,要求算法的空间复杂度为o(1)*/
#include<stdio.h>
#include<stdlib.h>
#define InitSize 10
typedef int ElemType;
typedef struct{
int length;
ElemType *data;
}SqList;
bool InitList(SqList &L)
{
L.data = (ElemType*)malloc(sizeof(ElemType)*InitSize);
L.length = 0;
return true;
}
bool ReverseList(SqList &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;
}
return true;
}
bool printList(SqList L)
{
for(int i=0;i<L.length;++i)
printf("%d ",L.data[i]);
printf("\n");
return true;
}
void main()
{
SqList L;
InitList(L);
int a[5]={1,2,3,4,5};
for(int i=0;i<5;++i)
{
L.data[i] = a[i];
++L.length;
}
printList(L);
ReverseList(L);
printList(L);
}
顺序表-逆置
最新推荐文章于 2025-12-18 16:44:05 发布
该篇博客展示了如何设计一个空间复杂度为O(1)的算法来逆置顺序表中的所有元素。通过C语言实现,代码中定义了顺序表结构,并提供了初始化、打印和逆置列表的函数。博主首先初始化顺序表,然后填充元素并打印原始顺序,接着调用逆置函数,最后再次打印逆置后的顺序表,验证了算法的正确性。
1万+

被折叠的 条评论
为什么被折叠?



