#include <stdio.h>
#define MAXSIZE 20 //物理长度
#define TRUE 1
#define FALSE 0
typedef int ElemType;
typedef int Status;
typedef struct
{
ElemType data[MAXSIZE];
int length;
}SeqList;
Status GetElem(SeqList L, int i, ElemType* e)
{
if(i<=0||i> L.length)
return FALSE;
*e = L.data[i - 1];
return TRUE;
}
Status ListInsert(SeqList* L, int i, ElemType e)
{
int k;
if (L->length == MAXSIZE)
{
return FALSE;
}
if (i <= 0 || i > L->length + 1)
{
return FALSE;
}
for (k = L->length;k >= i;k--)
{
L->data[k] = L->data[k-1];
}
L->data[i-1] = e;
++ L->length;
return TRUE;
}
Status ListDelete(SeqList* L, int i, ElemType *e)
{
int k;
if(L->length == 0)
return FALSE;
if (i < 1 || i > L->length)
return FALSE;
*e = L->data[i-1];
if (i < L->length)
{
for(k = i;k < L->length;k ++)
{
L->data[k-1] = L->data[k];
}
}
L->length--;
return TRUE;
}
Status InitList(SeqList* L)
{
L->length = 0;
return TRUE;
}
void PrintList(SeqList L)
{
int i;
for(i=0; i< L.length; i++)
{
printf("%d\t",L.data[i]);
}
printf("\n");
}
int main()
{
SeqList testList;
ElemType e;
InitList(&testList);
ListInsert(&testList,1,10);
PrintList(testList);
ListInsert(&testList,2,20);
PrintList(testList);
ListInsert(&testList,1,30);
PrintList(testList);
GetElem(testList,1,&e);
printf("第一个元素的值是%d\n",e);
ListDelete(&testList,2,&e);
PrintList(testList);
return 0;
}