#include<stdlib.h>
#include<stdio.h>
#define Maxsize 20
void menu(){
 printf("------------------------\n");
 printf("输入0初始化线性表:\n");
 printf("输入1给线性表赋值:\n");
 printf("输入2输出线性表元素:\n");
 printf("输入3查询线性表某一元素:\n");
 printf("输入4插入元素至线性表:\n");
 printf("输入5删除线性表中某一元素:\n");
 printf("输入6清空线性表:\n");
 printf("输入7输出线性表表长:\n");
 printf("输入8退出菜单:\n");
}
typedef int tt;
typedef struct
{ tt data[Maxsize];
  int length;
 }SqList;
 SqList a;
 void jian(SqList &a)
 { int x;
  do {  printf("输入线性表长度:\n");
     scanf("%d",&x);
  }while(x>=19&&x<0);
  a.length = x;
   for(int i=0;i<a.length;i++)
   {  printf("输入线性表中第%d个元素:\n",i+1);
    scanf("%d",&a.data[i]);       	
   }
 }
 void DisList(SqList a)
 {
 	int i;
 	for(i=0;i<a.length;i++)
 	printf("%4d",a.data[i]);
 	printf("\n");
 }
  int  InsElem(SqList &a,int i,int x)
{  
int j;
 printf("请输入要插入的元素:\n");
 scanf("%d",&x);
 printf("请输入要插入的位置:\n");
 scanf("%d",&i);
  if(i<1||i>a.length+1)
  return 0;
  for(j=a.length;j>i;j--)
   a.data[j]=a.data[j-1];
  a.data[i]=x;
  a.length++;
  return 1;	
}
int DelEiem(SqList &a,int i)
{ int j;
 //if(isEmpty(a))
 //{
 //	printf("表空\n");
 //	return 0; 
 //}
printf("请输入要删除的元素的位置:\n");
 scanf("%d",&i);
 if(i<1||i>a.length)
 return 0;
 for(j=i;j<a.length;j++)
 a.data[j-1]=a.data[j];
 a.length--;
 return 1;	
}
int GetElem(SqList a,int i,tt &e)
{  
 printf("请输入要查找元素的位置:\n");
 scanf("%d",&i);
	if(i<1||i>a.length)
	return 0;
   else
{  e = a.data[i-1];
   printf("%d\n",e);
   return 1;
   }
}
void DestoryList(SqList a)
{  
	printf("表已清空\n");
}
void IntList(SqList &a)
{  a.length = 0;
printf("初始化完成\n");
}
 int GetLength(SqList &a)
{   return a.length;
 } 
int isEmpty(SqList &a)
{  
 return(a.length==0)?1:0;	
}  
int isFull(SqList &a)
{
	return(a.length==20)?1:0;
}
 main()
 {  int b; int x,i,e;
  SqList a; 
  do
  { menu();
  printf("请输入命令序号:\n");
 	scanf("%d",&b);
 	if(b==0) IntList(a);
 else if(b==1) jian(a);
  else if(b==2) DisList(a);
   else if(b==3) GetElem(a,i,e);
   else if(b==4) InsElem(a,i,x);
  	 else if(b==5)DelEiem(a,i);
  	 else if(b==6)DestoryList(a);
  	 else if(b==7) printf("%d\n",GetLength(a));
 }while(b!=8);	
 }