Status ListDelete(LinkList *L,int i,ElemType *e)
{
int j;
LinkList p,q;
p=L->next;//
j=1;
while(p->next&&j {
q=p;
p=p->next;
++j;
}
if (!(p->next)||j>i)//排除此两者后,此时j=i
return ERRPR;
q->next=p->next;
*e=p->data;
free(p);
return OK;
}
删除单链表某个结点。虽说删除后,表成为了一个新表。但是L不一直都是头结点吗,并且指向第一个有值结点吗(就是头结点后面那个结点)所以,为什么要用LinkList *L呢?直接L不就行吗
你能确定 LinkList 是指针的类型么?或者说LinkList *是指针的指针么?
你点LinkList,右键,选转到定义看下
这里的确不需要指针的指针,
如果:typedef{...}Node;然后定义Linklist为:typedef struct Node *Linklist;
那么:p=L->next;这样访问是有问题的