求一线性表的顺序存储的改错!
int InsertElem(List * q,int i,ElemType * p) //i为插入的位置,即第几个{
ElemType *j=NULL,*k =NULL, *NewSpace = NULL;
if(q == NULL || p == NULL)
return 0;
if(i<1 || i > q->length+1) //这里list->length+1体现的是超过当前数量再加一,
//就不符合逻辑了,当大于List->length时,可插到最后一位!
return 0;
if(q->length >= q->listsize) //如果当前空间已经满了在扩展一下空间
{
NewSpace = (ElemType *)realloc (q->elem,
(q->listsize + LIST_INCREAME) * sizeof(ElemType));//扩展空间 但是提示:error C2059: syntax error : ')'
if(NewSpace == NULL)
return 0 ;
q->elem = NewSpace; //指向新的空间基址
q->listsize +=LIST_INCREAME; //空间大小增加 这里也提示: error C2059: syntax error : ';'
}
k = &q->elem[i-1]; //取得要插入的位置的地址;
for(j = &(q->elem[q->length-1]);j >= k; --j)
*(j+1) = *j;
*k= *p;
++ q->length;
}
希望大家帮我看看,先谢谢了!