#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 100
typedef int ElemType;
typedef struct
{
ElemType elem[MAXSIZE];
int length;
}Sqlist;
void outlin(Sqlist s);
void creat(Sqlist *v);
void insert(Sqlist *v,int i ,int x);
void deleter(Sqlist *v,int i);
void main()
{
Sqlist pz;
int i,y,cord;
do
{
printf("\n 主菜单 \n");
printf(" 1 建立线性表 \n");
printf(" 2 插入一个元素 \n");
printf(" 3 删除一个元素 \n");
printf(" 4 结束程序 \n");
printf("--------------------------\n");
printf("请输入您的选择(1,2,3,4) \n");
scanf("%d",&cord);
switch(cord)
{
case 1:
{
creat(&pz);
outlin(pz);
}break;
case 2:
{
printf("\n 请输入插入的位置i,插入的数据x:");
scanf("%d%d",&i,&y);
insert(&pz,i,y);
outlin(pz);
}break;
case 3:
{
printf("\n 请输入删除的位置 i:");
scanf("%d",&i);
deleter(&pz,i);
outlin(pz);
}break;
case 4:
exit(0);
}
}while(cord<=4);
}
void outlin(Sqlist s)
{
system("cls");
int i;
for(i = 1;i<=s.length;i++)
printf("\n%2d %6d",i,s.elem[i-1]);
}
void insert(Sqlist *v,int i,ElemType x)
{
int j;
if((i<0)||(i>v->length))
printf("\n Error!");
else
{
for(j =v->length;j>i;j--)
v->elem[j]=v->elem[j-1];
v->elem[j]=x;
v->length++;
}
}
void deleter(Sqlist *v,int i)
{
int j;
if((i<0)||(i>v->length))
printf("\n No EXIT!");
else
{
for(j = i;j<v->length;j++)
v->elem[j-1]=v->elem[j];
v->length--;
}
}
void creat(Sqlist *v)
{
int i;
printf("\n 请输入表长n=");
scanf("%d",&(v->length));
printf("\n请输入表数据:\n");
for(i = 0;i<v->length;i++)
{
printf("\n data = ");
scanf("%d",&(v->elem[i]));
}
}