qsl 发表于 2017-7-21 18:15:42

新手求助

新手 看了本书大话数据结构 它里面讲了顺序线性表第i个位置插入一个新的数据元素 源代码如下

/* 初始条件:顺序线性表L已存在,1≤i≤ListLength(L), */
/* 操作结果:在L中第i个位置之前插入新的数据元素e,L的长度加1 */
Status ListInsert(SqList *L,int i,ElemType e)
{
        int k;
        if (L->length==MAXSIZE)/* 顺序线性表已经满 */
                return ERROR;
        if (i<1 || i>L->length+1)/* 当i比第一位置小或者比最后一位置后一位置还要大时 */
                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;
}
俺又几个疑问它这个L->data 这个数据不是原来木有的吗 ?
如果它这个成立的话那删除操作是不是从L->data开始遍历就OK了?

qsl 发表于 2017-7-21 18:48:51

是俺的问题太简单了吗 求大腿解个惑吧

luciferzf 发表于 2017-7-31 14:14:01

如果L->length表示的是链表的长度,那么因为数组的下标是从0开始的,所以最后一个元素的下标应该为L->length-1,所以L->data其实是空的
页: [1]
查看完整版本: 新手求助