删除操作
删除算法的思路:
1. 如果删除位置不合理,抛出异常;
2. 取出删除元素;
3. 从删除元素位置开始遍历到最后一个元素位置,分别将它们都向前移动一个位置;
4. 表长-1;
/*初始条件:顺序线性表L已存在,1《i《ListLength(L))*/
/*操作结果:删除L中第i个数据元素, 并用e返回其值,L的长度-1*/
Status ListDelete(SqList *L, int i,ElemType e)
{
intk;
if(L->length== 0)
returnERROR;
if(i<1|| i>L->length+1)
returnERROR;
*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--;
returnOK;
}