190155801 发表于 2019-2-19 16:03:19

新手求帮忙

Status ListInsert_Sq(SqList &L, int i, ElemType e)
{
        if(i < 1 || i > L.length + 1)
                return ERROR;
        if(L.length >= L.listsize)
        {
                newbase = (ElemType *)realloc(L.elem,(L.listsize + LISTTINCREMENT) * sizeof (ElemType));
                if(!newbase)exit(OVERFLOW);
                L.elem = newbase;
                L.listsize += LISTINCREMENT;
        }
        q = &(L.elem);
        for(p = &(L.elem); p >= q; --p)
        *(p + 1) = *p;
        *q = e;
        ++L.length;
        return OK;
}


Status ListInsert(SqList *L, int i, ElemType e)
{
        int k;
        if(L->length == MAXSIZE)
        {
                return ERROR;
        }
        if( i < 1 || i > L->ength + 1)
        {
                return ERROR;
        }
        if(i <= L->length)
        {
                for(k = L->length - 1; k >= i-1; k--)
                {
                        L->data = L->data;
                }
        }
        L->data = e;
        L->length++;

        return OK;
}

两个都是链表插入的程序,上面的是严奶奶书上的,下面的是小甲鱼老师的;

为什么在程序第一行严奶奶用的是SqList &L,而小甲鱼老师用的是SqList *L?

为什么i > L.length + 1而不是L.length?

为什么在后面for循环是 L->length - 1?



190155801 发表于 2019-2-19 16:17:51

各位大佬解下惑

荣耀 发表于 2019-2-22 13:44:49

路过。。。。。
好复杂{:10_282:}
页: [1]
查看完整版本: 新手求帮忙