#include<string.h>
#include<stdio.h>
#define MAX_SIZE 100
#define Elemtype int
#define Status int
/*构建一个顺序表类型*/
typedef struct
{
Elemtype data[MAX_SIZE];
int length;
}Sqlist;
/*初始化顺序表函数,构建一个新的顺序表*/
Status Intlist(Sqlist& L)
{
memset(L.data, 0, sizeof(L));
L.length = 0;
return 0;
}
/*创建顺序表函数,初始化前n个数字*/
bool Creatlist(Sqlist& L, int n)
{
if (n<0 || n>MAX_SIZE)
{
printf("输入错误\n");
return false;
}
for (int i = 0; i < n; i++)
{
scanf("%d", &L.data[i]);
L.length++;
}
return true;
}
/*逆置函数*/
bool Changelist(Sqlist& L)
{
int temp ;
for (int i = 0; i <= L.length/2; i++)
{
temp = L.data[i];
L.data[i] = L.data[L.length - i];
L.data[L.length - i] = temp;
}
return 0;
}
/***************************************功能函数**************************************************/
//输出功能函数
void Printlist(Sqlist L)
{
printf("当前顺序表的所有数为\n");
for (int i = 0; i < L.length; i++)
{
printf("%d ", L.data[i]);
}
printf("\n");
}
//创建顺序表函数
void creat(Sqlist& L)
{
int n = 0;
bool flag;
L.length = 0;
printf("请输入要创建的线性表长度n\n");
scanf("%d", &n);
printf("请输入n个数,并用空格隔开\n");
flag = Creatlist(L, n);
if (flag)
{
printf("创建成功\n");
Printlist(L);
}
else
{
printf("输入长度非法\n");
}
}
int main()
{
Sqlist L;
creat(L);
Changelist(L);
Printlist(L);
return 0;
}
L.data[i] = L.data[L.length - i];
L.length 是从0开始算的,L.length - i越界了