BST路径遍历混乱[C ++]

问题描述

我创建了一个名为pathTo的方法,该方法返回用于查找字符串x的路径的字符串。方法如下:

string BinarySearchTree::pathTo(BinaryNode* n,const string& x) const
{

    if (n == NULL)
    {
        return "";
    }

    if (n->value == x)
        return x;

    if (x.compare(n->value) < 1)
        return n->value + " " + pathTo(n->left,x);
    else
        return n->value +" " + pathTo(n->right,x);

    return x;

}

尽管上面的示例有效,但是当我通过首先检查右侧而不是左侧来更改最后一个if else语句时,上面的示例不起作用:

if (x.compare(n->value) > 1)
    return n->value + " " + pathTo(n->right,x);
else
    return n->value +" " + pathTo(n->left,x);

这提供了我困惑的错误路径。为什么需要首先检查左侧?

解决方法

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

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

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

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...