您的位置:首页 > 其它

线性表的顺序存储实现

2014-11-17 14:44 302 查看
#define ListSize 100

typedef struct

{

DataType list[ListSize];

int length;

}SeqList;

void InitList(SeqList *L)

{

L->length = 0;

}

int ListEmpty(SeqList L)

{

if(L.length ==0 )

return 1;

else

return 0;

}

int GetElem(SeqList L, int i, DataType *e)

{

if(i<1||i>L.length)

return -1;

*e = L.list[i-1];

return 1;

}

int LocateElem(SeqList L, DataType e)

{

int i;

for(i=0; i<L.length; i++ )

{

if(L.list[i] == e)

return i;

}

return -1;

}

int InsertList(SeqList *L, int i, DataType e)

{

int j;

if(i<1 || i>L->length + 1)

{

printf("插入的位置i不合法。\n");

return -1;

}

else if(L->length >= ListSize)

{

printf("顺序表已满,不能插入元素。\n");

return 0;

}

else

{

for(j=L->length;j>=i;j--)

L->list[j]=L->list[j-1];

L->list[i-1] = e;

L->length = L->length + 1;

return 1;

}

}

int DeleteList(SeqList *L, int i, DataType *e)

{

int j;

if(L->length <= 0)

{

printf("顺序表已空不能进行删除\n");

return 0;

}

else if(i<1||i>L->length)

{

printf("删除位置不合适\n");

return -1;

}

else

{

*e = L->list[i-1];

for(j=i;j<L->length;j++)

L->list[j-1] = L->list[j];

L->length = L->length -1;

return 1;

}

}

int ListLength(SeqList L)

{

return L.length;

}

void ClearList(SeqList *L)

{

L->length = 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: