顺序表元素的查找
在顺序表中查找元素值为e的元素,并返回其下标
int findElem(List *l,int e)
{
int i;
for(i=0;i<l->length;++i)
{
if(l->data[i]==e)
return i+1; //返回e的位置
}
return 0; //没找到返回0
}
顺序表插入元素
在顺序表的第p(1<=p<=length+1)个位置前插入元素e。如果p的输入不正确,则返回0,代表插入失败;如果p的输入正确,则将顺序表第p个元素及以后元素右移一个位置,腾出一个位置插入新元素,顺序表长度加1,操作成功返回1。
int insertElem(List *l,int p,int e)
{
int i;
if(p<1||p>l->length+1||l->length==MAX)
return 0; //p的位置错误或长度不够时返回0
for(i=l->length;i>=p;i--)
{
l->data[i]=l->data[i-1]; //元素后移
}
l->data[p-1]=e; //把e插入
(l->length)++; //表长加1
return 1; //插入成功返回1
}
顺序表删除元素
删除顺序表l中下标为p(1<=p<=length)的元素,成功返回1,否则返回0。要删除表中下标为p的元素,只需将其后边的元素往前移动一个位置,将p位置上的元素覆盖掉即可。
int deleteElem(List *l,int p)
{
int i;
if(p<1||p>l->length)
return 0; //p的位置错误返回0
for(i=p;i<=l->length;i++)
{
l->data[i-1]=l->data[i]; //元素前移
}
(l->length)--; //表长减1
return 1; //删除成功返回1
}