#include<stdio.h>
#include<stdlib.h>
#define MAXLength 10
typedef int ElemType;
typedef struct
{
int data[MAXLength];
int length; //当前的长度
}Sqlist;
void Init(Sqlist *l)
{
l->length = 0;//初始化长度为0
//l->data[0] = NULL;
printf("\t**顺序表初始化完成**\n\n");
}
void Create(Sqlist *l)
{
int Length;
//int count = 0;//计数器
int x;
printf("请输入要创建的顺序表的长度:");
scanf("%d", &Length);
while (1)
{
if (Length > MAXLength)
{
printf("表长度超限,请重新输入表长度:");
scanf("%d", &Length);
//system("pause");
//exit(1);
}
if (Length <= 0)
{
printf("表长度不能小于等于0,请重新输入表长度:");
scanf("%d", &Length);
}
if (Length > 0&& Length < MAXLength)
{
if (Length > 0&& Length <= MAXLength)
{
for (int i = 0; i <=Length - 1; i++)
{
printf("请输入第%d个结点数据:", i + 1);
scanf("%d", &x);
l->data[i] = x;
}
l->length =Length;
printf("顺序表创建完成!!\n\n");
}
break;
//system("pause");
//exit(1);
}
}
}
void GetHead(Sqlist *l)
{
if (l->length <= 0)
{
printf("表为空!!\n");
}
else
{
printf("表头元素:%d\n", l->data[0]);
}
}
void GetLength(Sqlist *l)
{
printf("顺序表长为:%d", l->length);
}
void Display(Sqlist *l)
{
if (l->length > 0&& l->length <= MAXLength)
{
printf("表中元素:\n");
for (int i = 0; i < l->length; i++)
{
printf("%d \n", l->data[i]);
}
}
else
{
printf("表长有误!!");
exit(1);
}
printf("========\n");
}
void main()
{
int flag;
Sqlist l;
printf("\t1:初始化\n");
printf("\t2:创建\n");
printf("\t3:打印\n");
printf("\t4:表长\n");
printf("\t5:表头\n");
printf("\t0:退出\n");
printf("请输入相应指令操作顺序表:\n");
scanf("%d", &flag);
while (1)
{
switch (flag)
{
case 1:Init(&l);
break;
case 2:Create(&l);
break;
case 3:Display(&l);
break;
case4:GetLength(&l);
break;
case 5:GetHead(&l);
break;
case 0:exit(1);
break;
default:printf("指令有误!!\n");
//scanf("%d",&flag);
break;
}
printf("请输入相应指令操作顺序表:\n");
scanf("%d", &flag);
}
system("pause");
}