编辑代码

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