线性表的顺序存储实现

#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;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值