新手求助
新手 看了本书大话数据结构 它里面讲了顺序线性表第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了? 是俺的问题太简单了吗 求大腿解个惑吧 如果L->length表示的是链表的长度,那么因为数组的下标是从0开始的,所以最后一个元素的下标应该为L->length-1,所以L->data其实是空的
页:
[1]