编辑代码

#include <stdio.h>
#define DATATYPE1 int
#define MAXSIZE 100

typedef struct
{
    DATATYPE1 data[MAXSIZE];
    int len;
} SEQUENLIST;

void INITIATE(SEQUENLIST *L)
{
    L->len = 0;
    return;
}

int LENGTH(SEQUENLIST *L)
{
    return L->len;
}

DATATYPE1 GET(SEQUENLIST *L, int i)
{
    if (i < 1 || i > L->len)
        return -1;
    else
        return L->data[i - 1];
}

int LOCATE(SEQUENLIST *L, DATATYPE1 x)
{
    int 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, DATATYPE1 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;
}
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("删除操作完成! \n");
    printf("线性表的长度: %d\n",
    LENGTH(L));
    printf("元素2的位置: %d\n",LOCATE(L,2));
    printf("元素6的位置: %d\n",LOCATE(L,6));
    return 0;}