69,369
社区成员
发帖
与我相关
我的任务
分享
Status ListInsert(SqList &L,LONG index,ElemType e)
//初始条件:线性表L已存在,1<=i<=ListLength(L)+1
//操作结果:在L中的第i个元素之前插入新的数据元素e,L的长度加1
{
if((index<1) || (index>L.length+1)){
cout<<"插入的位置不合理"<<endl;
return ERROR;
}
if(L.length>=L.size){
ElemType *newbase=(ElemType*)realloc(L.elem,
(L.size+LISTINCREMENT)*sizeof(ElemType));
if(newbase==NULL){
cout<<"增量存储空间分配失败"<<endl;
exit(OVERFLOW);
}
else{
L.elem=newbase;
L.size+=LISTINCREMENT;
}
}
//移动元素
int i=L.length;
for(;i>index-1;i--)
L.elem[i]=L.elem[i-1];
//插入元素
L.elem[index-1]=e;
//修改表长
L.length++;
return OK;
}