3.5.2插入操作
插入算法的思路:
1. 如果插入位置不合理,抛出异常;
2. 如果线性表长度大于等于数组长度,则抛出异常或动态增加容量;
3. 从最后一个元素开始向前遍历到第i个位置,分别将它们都向后移动一个位置;
4. 将要插入元素填入位置i处;
5. 表长加1
/*初始条件:顺序线性表L已存在,1《i《ListLength(L))*/
/*操作结果:在L中第i个位置之前插入的新的数据元素e,L的长度加1*/
Status ListInsert(SqList *L, int i,ElemType e)
{
intk;
if(L->length== MAXSIZE)
returnERROR;
if(i<1|| i>L->length+1)
returnERROR;
if(i<= L->length)
{
for(k=L->length-1;k>=i-1; k--) /*将要插入位置后数据元素向后移动一位*/
L->data[K+1]= L->data[k];
}
L->data[i-1]= e; /*将新元素插入*/
L->length++;
returnOK;
}