注册 登录
编程论坛 数据结构与算法

求一线性表的顺序存储的改错!

ll2323001 发布于 2010-05-07 19:22, 595 次点击
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;
}

希望大家帮我看看,先谢谢了!
3 回复
#2
hzh5122010-05-08 08:52
加上 \
NewSpace =  (ElemType *)realloc (q->elem,   \
                       (q->listsize + LIST_INCREAME) * sizeof(ElemType));//扩展空间  但是提示:error C2059: syntax error : ')'
#3
ll23230012010-05-09 22:18
其实那一句没换行也提示错误
#4
hzh5122010-05-10 08:19
把程序全发上来
1