【问题标题】:Post-order Graph Traversal? [closed]后序图遍历? [关闭]
【发布时间】:2016-07-29 02:09:05
【问题描述】:

鉴于下面的有向图,我们是如何实现后序遍历的?

DFS

预购遍历中的访问顺序:1 2 5 4 6 3

后序遍历中的访问顺序:4 6 5 2 1 3

【问题讨论】:

  • 我投票结束这个问题,因为它不是一个编程问题。这似乎是关于算法理论的问题。
  • 我投票结束这个问题,因为它与编程无关。
  • 算法怎么不编程?接下来我们将无法讨论设计模式。我认为这种关闭是错误的。投票开启。
  • @Liam,这可以解释为什么有这么多有缺陷的应用程序:现在一些程序员似乎认为算法是别人的问题;-)
  • @JarrodRoberson 我认为只有一个正确答案,因此不会太宽泛。 MCVE 对这个问题不适用。通常我们需要 MCVE 来解决代码中的错误。

标签: algorithm data-structures tree-traversal graph-traversal


【解决方案1】:

后序 DFS 本​​质上具有以下设计:

  1. 拜访孩子们;
  2. 拜访我自己;

1开始,按以下顺序探索节点:

1 -> 2 -> 5 -> 4(v) ->6(v) -> 5(v) -> 2(v) -> 1(v) -> 3(v)

这里的(v) 意味着在看到没有一个子节点未被访问或至少它们在访问管道中之后,现在访问了该节点。这就解释了为什么遍历是465213

可能困扰您的是我们如何访问节点3,因为从1 开始,没有通往3 的路径。答案似乎是在扫描了整个 connected 图之后,遍历算法会扫描是否还有任何未扫描的节点。那么它最终会访问3

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-01
    • 1970-01-01
    • 2018-11-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多