标题:单链表求前驱,求指点错误。
只看楼主
Xy_betray
Rank: 2
来 自:河南
等 级:论坛游民
帖 子:22
专家分:12
注 册:2012-9-18
结帖率:33.33%
已结贴  问题点数:5 回复次数:2 
单链表求前驱,求指点错误。
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;
}

链表的头指针通过k传入,要求前驱的元素用cur_e传入,求得的前驱存到*pre_e里面,,,这段代码为什么不对呢?求指点
搜索更多相关主题的帖子: next return 
2013-05-18 19:39
YJ_Hao
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:215
专家分:609
注 册:2013-3-22
得分:3 
不明白你在干嘛?求前驱却返回个int?
2013-05-18 20:04
Explorerlxz
Rank: 9Rank: 9Rank: 9
来 自:zzu
等 级:蜘蛛侠
威 望:4
帖 子:302
专家分:1032
注 册:2013-4-24
得分:3 
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;//既然p指向了下一个结点,那么下面的p->data就已经是第二个结点里的内容了,因此无前驱是i=0时的情况
                  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 priorelem(const linklist k,const ElemType cur_e,ElemType *pre_e) //求前驱
{
    int i=0;
    linklist q=k,p=k;
    if(p->data==cur_e)
    {
        printf("%d为第一个元素,无前驱\n",cur_e);
        return 0;
    }
    while(p->next)
    {
        p=p->next;
        i++;
        if(p->data==cur_e)
        {
            *pre_e=q->data;
            return 0;
        }
        q=q->next;
    }
    return 0;
}


2013-05-20 23:23



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-407443-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.130901 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved