nimo_096 2015-07-28 10:13 采纳率: 50%
浏览 4875
已结题

C语言二叉树的节点查找问题(递归方法)

用的递归的方法查找元素 有点类似于二叉树建立
代码如下

 struct node *search(struct node *n,int v){//查找
  struct node *p;
  p=n;

 if(p->value==v){//找到
    return p;

  }
  else if(v<p->value){//左边部分查找
    if(p->left==NULL)
      return NULL;//未找到
    else{
      p=p->left;

      search(p,v);
    }
  }
  else{//v>p->value,右边部分查找
    if(p->right==NULL)
      return NULL;//未找到
    else{
      p=p->right;
      search(p,v);

    }
  }
}

main方法中:point=search(root,20);
用这种方法 总是返回根节点的值 而不是要查找的值或者null

  • 写回答

4条回答 默认 最新

  • oyljerry 2015-07-28 10:29
    关注

    因为你需要修改指针的地址,所以你需要用二级指针

    struct node *search(struct node **n,int v)

    struct node **p;

    参考这个代码

     int
    Search_data(TreeNode *t,TreeNode **p,TreeNode **q, elemtype x)
    {
        int flag=0;
        *p=NULL;
        *q=t;
    
        while(*q)
        {
            if (x>(*q)->data)
            {
                *p=*q;
                *q=(*q)->Rchild;
            }
            else{
                if (x<(*q)->data)
                {
                    *p=*q;
                    *q=(*q)->Lchild;
                }
                else{
                    flag=1;
                    break;                    
                }
            }
        }
        return flag;
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥50 易语言把MYSQL数据库中的数据添加至组合框
  • ¥20 求数据集和代码#有偿答复
  • ¥15 关于下拉菜单选项关联的问题
  • ¥20 java-OJ-健康体检
  • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况