作业1

//2022.9.6数据结构作业
#include <stdio.h>
#include <stdlib.h>

#define N 20

typedef struct sqlist
{
int *elem; //基地址
int length; //表长
int listsize; //存储空间大小
}sql;

//定义一个变量(顺序表)
sql L;

//初始化
void InitList()
{
L.elem=(int *)malloc(N*sizeof(int)); //申请存储空间
if(!L.elem)
exit(0); //判断是否申请成功
L.listsize=N; //空间大小
L.length=0; //空间长度
}
//输入
void input(int n)
{
int i;
for(i=0;i<n;i++)
scanf("%d",&L.elem[i]);
L.length=n;
}
//输出
void output()
{
int i;
for(i=0;i<L.length;i++)
printf("%d ",L.elem[i]);
}
//判断表是否为空
int ListEmpty()
{
if (L.length==0) //如果为空返回1,不为空返回0
return 1;
else
return 0;
}
//返回空间长度
int ListLength()
{
return L.length; //返回表长
}
//返回值
int GetList(int i)
{
int e;
if(i<1||i>L.length-1) //找到返回e,找不到退出
{
printf("找不到该元素");
exit(0);
}
else
e=L.elem[i-1];
return e;

}
void main()
{
int n,i;
InitList();
printf("输入n的值:");
scanf("%d",&n);
printf("输入数组的值:");
input(n);
printf("输出值:");
output();
printf("\n");
if(ListEmpty()==1) //输出结果
printf("该表为空\n");
else
{
printf("该表不为空,返回");
printf("%d\n",ListEmpty());
}
printf("该表的长度为:");
printf("%d\n",ListLength());
printf("输入要找的值:");
scanf("%d",&i);
printf("找到该元素,值为:");
printf("%d",GetList(i));
}