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