单链表求前驱,求指点错误。
int priorelem(const linklist k,const ElemType cur_e,ElemType *pre_e) //求前驱
{
int i=0;
linklist q=k,p=k;
while(p->next)
{
p=p->next;
i++;
if(p->data==cur_e)
{
if(i==1)
{
printf("%d为第一个元素,无前驱\n",cur_e);
return 0;
}
*pre_e=q->data;
}
q=q->next;
}
return 0;
}
{
int i=0;
linklist q=k,p=k;
while(p->next)
{
p=p->next;
i++;
if(p->data==cur_e)
{
if(i==1)
{
printf("%d为第一个元素,无前驱\n",cur_e);
return 0;
}
*pre_e=q->data;
}
q=q->next;
}
return 0;
}
链表的头指针通过k传入,要求前驱的元素用cur_e传入,求得的前驱存到*pre_e里面,,,这段代码为什么不对呢?求指点