ListDelete实现
/*初始条件:顺序线性表L存在,1<=i<=ListLength(L)
操作结果:删除L中第i个位置数据元素,并返回值e,L的长度-1*/
Status ListDelete(SqList *L, int i, ElemType *e)
{
int k;
if(L->length == 0) //顺序线性表为空
return ERROR;
if(i<1 || i>=L->length) //i不在范围之内
return ERROR;
*e = L->data[i-1] ;
if(i<L->length+1) //如果删除不是最后位置
{
for(k=i; k<=L->length; k++) //从第i个位置后继元素(不包括i)遍历到最后一个
L->data[k-1] = L->data[k]; //将要插入位置后面的数据元素向前移动一位
}
L->length--; //长度+1
return OK;
}