a1 | 1(序号) |
---|---|
a2 | 2 |
… | … |
– | – |
ai-1 | i-1 |
ai | i |
– | – |
ai+1 | i+1 |
… | … |
an | n |
算法描述如下:
Status ListInsert (SqList *L,int i, ElemType e)
{ //在顺序表L中,第i个位置插入元素e,其中1<=i<=L -> length+1
int j;
if(i<1||i>L -> length+1) //插入元素i的值必须符合1<=i<=L -> length +1
return FALSE;
if(L -> length = L.listsize) //当前顺序表存储空间已满
return OVERFLOW;
for(j=L -> length-1;j>=i-1;j--) //让j=顺序表 L 减1的位置,大于等于元素i的前一个位置
{
L ->elem[j+1] = L ->elem[j]; //增加了一个元素,让第i个位置之后的元素往后移
L ->elem[i-1] = e; //插入元素e
L -> length++; //顺序表长度加1
return TRUE;
}
}