数据结构——顺序表实现(c语言)
代码:
#define MAXSIZE 10
typedef char ElemType;
typedef struct List
{
ElemType *data;
int length;
} List;
int InitList(List *L)
{
L->data = (ElemType*)malloc(sizeof(ElemType)*MAXSIZE);
if (!L->data)
{
return 0;
}
L->length = 0;
return 1;
}
int InsertElem(List *L, int i, ElemType e)
{
if (L->length == MAXSIZE)
{
return 0;
}
int j;
for(j = L->length - 1; j >= i; j--)
{
L->data[j + 1] = L->data[j];
}
L->data[i] = e;
L->length++;
return 1;
}
int GetElem(List L, int i, ElemType *e)
{
if (i >= L.length)
{
return 0;
}
*e = L.data[i];
return 1;
}
int PrintList(List L)
{
if (L.length == 0)
{
return 0;
}
int i;
for(i = 0;i < L.length;i++)
{
printf("%c ",L.data[i]);
}
printf("\n");
return 1;
}
int DestoryList(List *L)
{
if (!L->data)
{
return 0;
}
free(L->data);
L->data = NULL;
L->length = 0;
return 1;
}
int main(int argc, char *argv[])
{
ElemType e;
List L;
InitList(&L);
InsertElem(&L, 0, 'a');
InsertElem(&L, 1, 'c');
InsertElem(&L, 2, 'd');
InsertElem(&L, 1, 'b');
PrintList(L);
GetElem(L, 1, &e);
printf("%c\n", e);
DestoryList(&L);
return 1;
}