您的位置:首页 > 理论基础 > 数据结构算法

数据结构之 将顺序表所有元素逆置,要求空间复杂度为O(1)

2017-09-30 16:43 507 查看
问题:设置一个高效的算法,将顺序表的所有的元素逆置,要求空间复杂度为O(1)。

#include<stdio.h>
#include<stdlib.h>
#include<stdbool.h>
#define Maxsize 50
typedef struct SqList{
int* data;
int length;
};
// ---------------------------- 初始化-----------------------------
bool InitList(struct SqList* L)
{
L->data=(int*)malloc(sizeof(int)*(Maxsize/2));
int i=0;
for(i=0;i<Maxsize/2;i++)
{
L->data[i]=rand()%100;
}
L->length=Maxsize/2;
return true;
}

void  Reverse(struct SqList* L)
{
int temp=0;
int i=0 ;
for(i=0;i<(L->length)/2;i++)
{
// L->data[i]=i;
temp=L->data[i];
L->data[i]=L->data[(L->length)-i-1];
L->data[(L->length)-i-1]=temp;
}
}

void print(struct SqList *L)
{
int j=L->length;
int i=0;
for(i=0;i<j;i++)
{
printf("%d ",L->data[i]);
}
printf("\n");
}
int main()
{
//-------------------初始化顺序表--------------------

struct SqList L;
if(InitList(&L)==true)
{
printf("顺序表初始化成功!\n");
}
print(&L);
printf("\n\n");

Reverse(&L);
print(&L);
printf("\n\n");

}


运行结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐