思路
1.获取表长
2.判断是否为空
3.判断 i 在不在表内
4.插入
插入的两种情况
1.不在表尾->插入的位置后的元素要移动
2.在表尾->直接插入
代码
/*初始条件: 顺序表L已存在,1<=i<=ListLength(L) */
/*操作结果:在L党的第i个位置之前插入新的数据元素e,L的长度+1 */
Status ListInsert(SqList *L, int i ,ElemType e)
{
int k;
if ( L->length == MAXSIZE ) //顺序表已经满了
{
return ERROR;
}
if ( i<1 || i>L->length+1) //当i不在范围内时
{
return ERROR;
}
if ( i<= L->length ) //若插入数据位置不在表尾时
{
/*将要插入位置后的元素向后移动一位*/
for ( k=L->length-1; k >= i-1 ; k--)
{
L->date[k+1] = L->date[k];
}
}
L->date[i-1] = e ; //插入新元素
L->length++;
return OK;
}