一、简单描述
如果要实现ListInsert(SeqList *L,int i,ElemType e),即在顺序表L中的第i(1<=i<=L,length+1)个位置上插入元素e
插入元素后的每一个位置都需要后移一位
如图所示:
(图源:程杰《大话数据结构(溢彩加强版)》)
二、详细步骤:
1.如果插入位置不合理,即i不在线性表范围内时,结束程序,输出异常信息
if(i<1||i>L->length+1)
{
return ERROR;
}
2.如果线性表的长度大于等于数组的长度,结束程序,输出异常信息
if(L->length>=MAXSIZE)
{
return ERROR;
}
3.如果i插入的位置不在表尾,从顺序表的最后一个元素开始向前遍历到第i个元素,分别将它们向后移动一个位置
因为数组是从0开始,所以k=L->length-1,从后面依次递减
if(i<=L->length)