关于链表中在第i个元素前插入元素代码的疑问
小甲鱼给的代码如下:/* 初始条件:顺序线性表L已存在,1<=i<=ListLength(L) */
/* 操作结果:在L中第i个位置之前插入新的数据元素e,L的长度加1 */
Status ListInsert(LinkList *L, int i, ElemType e)
{
int j;
LinkList p, s;
p = *L;
j = 1;
while( p && j<i ) // 用于寻找第i个结点
{
p = p->next;
j++;
}
if( !p || j>i )
{
return ERROR;
}
s = (LinkList)malloc(sizeof(Node));
s->data = e;
s->next = p->next;
p->next = s;
return OK;
}
其中的if语句的条件“ !p || j>i”,j>i不会发生吧?因为上面的while循环中有判断,最多是等于吧。请各位明示,谢谢!
太晚了,没有人回答吗? purplepower99 发表于 2014-5-10 22:56 static/image/common/back.gif
太晚了,没有人回答吗?
发生错误的情况有两种: i<1 或者 i >len
设置 j>i 条件是为了防止第一种 sidfate 发表于 2014-5-11 16:26 static/image/common/back.gif
发生错误的情况有两种: ilen
设置 j>i 条件是为了防止第一种
谢谢, 明白啦!
页:
[1]