初始化及打印函数
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#define MaxSize 10//定义最大长度
int InitArr[10] = { 1,2,3,4,5,6,7,8,9,10 };typedef struct {int data[MaxSize];//用静态的数据存放数据元素int length;//顺序表当前长度
}Sqlist;//顺序表的类型定义void print(Sqlist* L)
{for (int i = 0;i < L->length;i++){printf("%d ", L->data[i]);}
}//初始化一个顺序表
void InitList(Sqlist* L)
{for (int i = 0;i < MaxSize;i++){L->data[i] = InitArr[i];//将所有数据元素设置为默认初始值}L->length = 10;//顺序表初始长度为0
}
//设计一个高效算法,将顺序表L的所有元素逆置,要求算法的空间复杂度为O(1)
void reverse(Sqlist* L) {//将第i位与倒数第i位互换位置即可int i = 0;//正向int j = (*L).length - 1;while (i < j) {int tmp = (*L).data[j];(*L).data[j] = (*L).data[i];(*L).data[i] = tmp;i++;j--;}
}int main()
{Sqlist L;InitList(&L);//初始化一个顺序表:1,2,3,4,5,6,7,8,9,10printf("初始顺序表为:");print(&L);printf("\n");reverse(&L);printf("逆置后顺序表为:");print(&L);return 0;
}