#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;
}