【问题标题】:Algorithms on trees. Are there hints that help point the way to solve efficiently?树上的算法。是否有提示可以帮助指出有效解决的方法?
【发布时间】:2012-03-18 09:28:28
【问题描述】:

我正在重新审视 CS 基础知识和算法。

我想确保我得到了正确的东西。

当我读到 bottom-up 和 top-down 等提示时,我是否正确地认为它们总是应该如下理解?
bottom-up --> post-order traversal
top-down --> pre-order traversal
??? --> in-order traversal

我不清楚什么样的提示意味着有序遍历;
还有比这各种方法更完整的提示列表吗?
我的意思是也许还有其他提示指向迭代而不是递归?

我在想,如果我能以某种方式这样分类,它将帮助我更轻松地解决算法问题

非常感谢任何意见。

【问题讨论】:

  • 或许,从左到右遍历?
  • 在搜索树的情况下按(排序)顺序,因此得名。

标签: algorithm data-structures computer-science binary-tree


【解决方案1】:

自下而上和自上而下是与树遍历没有直接关系但与信息处理相关的术语。

自下而上的策略是一种综合:您通过理解观察获得信息。例如,您尝试通过首先理解彼此接近的语句并综合子程序或过程的含义来理解计算机程序。你走得更远,将程序的含义综合到更大的部分,最终你理解了程序。另一个例子是语音识别,其中传感器信息首先被合成为音节,......单词和含义,......句子和陈述。

自上而下是分解的分析策略。例如,您将问题分解为更易于处理的较小部分。

【讨论】:

    【解决方案2】:

    它们不是一回事。想象一下,您有一个带括号的表达式,已经解析成一棵树,您需要打印出来。如果你想以后缀表示法(2 2 +)显示它,你会做后序遍历。要以中缀表示法 (2 + 2) 显示它,您需要按顺序遍历。但是如果你想计算表达式的值,最简单的方法是深度优先和自底向上,不管你如何显示它。

    由于您需要更多的指导资源,我建议您寻找解释这些原则的教科书或在线资源。解决问题是件好事,但有时了解全局是件好事。恐怕我不知道有什么好的建议。

    【讨论】:

    • 可能是我误读了您的答案,但在您的示例中,post 和 in 是提示,您遵循相应的方法?
    • 我确定它们是提示,但“对应的方法”不是自下而上或自上而下。它是后订购或按顺序排列的。
    • 所以你说的是postfix --> postorder 而不是bottom-up 并且除了提到的还有其他提示?你的意思是我写的OP暗示了一个提示比如postfix 映射到bottom-up?
    • 我不知道是否还有其他提示(在哪里?这是你的教科书)。但是,是的,后缀是后序。后缀之类的提示不会映射到自下而上,这就是我的示例的重点。这三个顺序中的任何一个都可能是自下而上或自上而下的。
    • where?it's your textbook。哦,我明白你的意思了。不,这些提示不在我正在使用的特定书籍中。在任何网站上也有算法难题/挑战,特别是在那些帮助人们准备面试的人中
    【解决方案3】:

    既然您要求参考,您应该去wikipedia、geekviewpoint 和topcoder 之类的地方。

    对于维基百科,您可以搜索“算法”。对于其他链接,只需关注它们即可。

    【讨论】:

      猜你喜欢
      • 2018-03-20
      • 2022-06-10
      • 2018-08-13
      • 1970-01-01
      • 2011-08-24
      • 1970-01-01
      • 2017-03-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多