主题:严蔚敏数据结构-算法2.8的一个问题,请大家指教下!
这是数据结构课本算法2.8 在单链表中取得第i个数据元素,并将值赋给e
Status GetElem_L(LinkList L, int i, ElemType e)
{
p=L->next;
j=1;
while(!p&&j<i)
{
p=p->next;
++j;
}
if(!p || [color=FF0000]j>i[/color]) return ERROR;
e=p->data;
return OK;
}
红色字体的“j>i”始终想不明白,这个可以去掉吗?因为在 while(!p&&j<i)中当j=i的时候就应该跳出循环了,所以j根本没有机会大于i的,不知道我理解的哪里出了问题,请大家指教下,谢谢
Status GetElem_L(LinkList L, int i, ElemType e)
{
p=L->next;
j=1;
while(!p&&j<i)
{
p=p->next;
++j;
}
if(!p || [color=FF0000]j>i[/color]) return ERROR;
e=p->data;
return OK;
}
红色字体的“j>i”始终想不明白,这个可以去掉吗?因为在 while(!p&&j<i)中当j=i的时候就应该跳出循环了,所以j根本没有机会大于i的,不知道我理解的哪里出了问题,请大家指教下,谢谢