【问题标题】:c++ searching for a node in a treec ++在树中搜索节点
【发布时间】:2013-05-18 00:03:06
【问题描述】:

在我的程序中,我在给定目标的同时递归地尝试在树中找到一个节点,但我无法让它工作!

    Stree::Node * Stree::find_node(Node* cur, string target)
{
    Node *tmp = cur;;
    if(cur == NULL || tmp == NULL)
        return NULL;
    if(cur->m_city == target || tmp->m_city == target)
        return cur;
    if(find_node(tmp->m_left, target))
    {
        return tmp;
    }
    else return find_node(cur->m_right, target);

【问题讨论】:

  • 出了什么问题?您介意给我们一个最小的完整示例吗?
  • 如果要进行线性搜索,为什么还要使用树?树的要点通常是进行 O(log N) 搜索,但您没有这样做。

标签: c++ recursion tree target


【解决方案1】:

问题出在这里:

if(find_node(tmp->m_left, target))
{
    return tmp;
}

你应该在那里返回find_node的结果:

tmp = find_node(cur->m_left, target);
if (tmp) return tmp;

【讨论】:

  • 不要喂帮助吸血鬼。
猜你喜欢
  • 2021-07-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-18
  • 1970-01-01
  • 2017-09-26
相关资源
最近更新 更多