各位鱼友们帮我看看这个单链表的插入和删除算法
/* 初始条件:顺序线性表L已存在,1<=i<=ListLength(L) *//* 操作结果:删除L的第i个数据元素,并用e返回其值,L的长度-1 */
Status ListDelete(LinkList *L, int i, ElemType *e)
{
int j;
LinkList p, q;
p = L;//指向第一个结点
j = 1;//计数器
while( p->next && j<i )//遍历这个单链表寻找第i-1个结点
{
p = p->next;
++j;
}
if( !(p->next) || j>i )
{
return ERROR;
}
q = p->next;
p->next = q->next;
*e = q->data;
free(q);
return OK;
}
鱼油们帮我看看 if( !(p->next) || j>i )这个是什么意思啊?为什么要加一个就j>i呢?目的是个啥?
这条语句是控制i的输入不能小于1,小于1就报错
页:
[1]