#include <stdio.h>
#define DATATYPEL1 int
#define MAXSIZE 100
typedef struct
{
DATATYPEL1 data[MAXSIZE];
int len;
}SEQUENLIST;
void INITIATE (SEQUENLIST *L)
{
L->len=0;
return;
}
int LENGTH (SEQUENLIST *L)
{
return(L->len);
}
DATATYPEL1 GET(SEQUENLIST *L,int i)
{
if(i<1||i>L->len)
return(-1);
else
return(L->data[i-1]);
}
int LOCATE(SEQUENLIST *L,DATATYPEL1 x)
{
int k;
k=1;
while(k<=L->len&&L->data[k-1]!=x)
k++;
if(k<=L->len)
return(k);
else
return(0);
}
void INSERT(SEQUENLIST *L,int i,DATATYPEL1 b)
{
int k;
if (i<1||i>L->len+1||L->len>=MAXSIZE)
printf("error");
else
{
for(k=L->len;k>=i;k--)
L->data[k]=L->data[k-1];
L->data[i-1]=b;
L->len++;
}
}
void DELETE(SEQUENLIST *L,int i)
{
int k;
if (i<1||i>L->len||L->len==0)
printf("error");
else
{
for (k=i+1;k<=L->len;k++)
L->data[k-2]=L->data[k-1];
L->len--;
}
}
int EMPTY(SEQUENLIST *L)
{
if(L->len==0)
return(1);
else
return(0);
}
int main()
{
SEQUENLIST list,*L;
int i,j;
L=&list;
INITIATE(L);
printf("线性表初始化完成\n");
INSERT(L,1,2);INSERT(L,2,6);INSERT(L,3,9);INSERT(L,4,8);
printf("插入元素完成\n");
DELETE(L,LOCATE(L,9));
printf("删除9元素完成\n");
printf("线性表长度:%d\n",LENGTH(L));
int pos = LOCATE(L, 2);
if (pos != 0) {
printf("元素2的位置:%d\n", pos);
} else {
printf("元素2不存在\n");
}
printf("输入要查找的元素值:");
scanf("%d",&i);
printf("该元素在线性表中的位置为: %d",LOCATE(L,i));
}