后序图遍历?

时间:2016-04-07 23:28:46

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

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

DFS

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

在订单后遍历中访问订单:4 6 5 2 1 3

enter image description here

1 个答案:

答案 0 :(得分:11)

订购后的DFS基本上有以下设计:

  1. 拜访孩子们;
  2. 拜访自己;
  3. 1开始,按以下顺序探索节点:

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

    这里(v)意味着在看到任何一个子节点未被访问或者至少它们正在管道中访问之后,现在访问该节点。这解释了遍历为465213的原因。

    可能困扰你的是我们如何访问节点3,因为从1开始,没有3的路径。答案似乎是在扫描完整个连接的图之后,遍历算法会扫描是否还有未扫描的节点。所以最后它最终会访问3