本题要求实现一个函数,在顺序表的第i个位置插入一个新的数据元素e,插入成功后顺序表的长度加1,函数返回值为1;插入失败函数返回值为0;
函数接口定义:
int ListInsert(SqList &L,int i,ElemType e);
这道题当你看了测评情况会发现边界处理还是有点难度的。
代码如下:
int ListInsert(SqList &L,int i,ElemType e)
{
if(i<1||i>MAXSIZE||i>L.length+1) return 0;
if(L.length >= MAXSIZE) return 0;
for(int k=L.length;k>=i;k--)
{
L.elem[k] = L.elem[k-1];
}
// for(int k=L.length-1;k>=i-1;k--)
// {
// L.elem[k+1] = L.elem[k];
// }
L.elem[i-1]=e;
L.length ++;
return 1;
}