二叉树中的搜索关键字

问题描述

我遇到的问题是,对于某些键,我的函数有效,但对于某些键却无效。如果树中没有带有该键的元素,则该函数应返回一个指向key == givenKeyNULL的节点的指针。这是结构,下面是函数。

typedef struct node
{
    int key;
    struct node *l,*r;
}NodeT;

NodeT *search(NodeT *root,int givenKey)
{
    if(root == NULL || root->key == givenKey)
        return root;
    search(root->l,givenKey);
    search(root->r,givenKey);
}

这是main中函数的调用:

    NodeT *q = search(root,9);
    NodeT *r = search(root,7);
    printf("%p\n%p\n",q,r);

这是给定的二叉树:(例如q获得正确的地址,但是r将是NULL,即使其中包含带有key = 7的元素我们的二叉树。

enter image description here

如果您告诉我什么地方出了问题,我将不胜感激,因为我尝试了很多次更改功能,但是没有成功。我什至使用调试器浏览了我的代码,但似乎没有太大帮助。预先谢谢你!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)