#include<stdio.h>

#define max 100

typedef struct{
 int data[max];
 int last;
}List;

void Init(List *L)//顺序表初始化
{
 //L.data[0]=0;
 L->last=0;
}

void Createlist(List *L,int n)
{
    int i;
    printf("请输入顺序表元素:\n");
    for(i=0;i<n;i++)
 {
        scanf("%d",&(L->data[i]));
    L->last=n;
 }
}


int Locate(List *L,int x)//查找链表中第一个与x相等的元素的位置
{
 int i=0;
 while((i<L->last)&&(L->data[i]!=x))
  i++;
 if(i<L->last)
  return i;
 else
  return 0;

}

int Insert( List *L,int i,int x)//在第i个元素后面插入一个元素x
{
 int j;
 if(i>L->last||i<0)
 {
  printf("插入失败!\n");
  return 0;
 }
 for(j=L->last;j>=i;j--)
  L->data[j+1]=L->data[j];
 L->data[i]=x;
 L->last=L->last+1;
 return 0; 
}

int Delete(List *L,int i)//删除第i个元素
{
 int j;
 if(i<0||i>L->last)
 {
  printf("位置不合法!\n");
  return 0;
 }
 for(j=i;j<L->last;j++)
  L->data[j]=L->data[j+1];
 L->last=L->last-1;
 return 0;

}

int print(List *L)
{
 int i=0;
 if(L->last<=0)
 {
  printf("表中没有元素!\n");
  return 0;
 }
 for(i=0;i<=L->last;i++)
 {
  printf("%d ",L->data[i]);
  //i++;
 }
 return 0;
}

int main()
{
 int m=0;
 List L;
 /*Createlist(&L,3);
 print(&L);
 printf("\n");*/
 Init(&L);
 for(m=0;m<10;m++)
  Insert(&L,m,m);
 print(&L);
 printf("\n");
 Delete(&L,2);
 print(&L);
 printf("\n");
 printf("%d\n",Locate(&L,4));
 return 0;

}