首页 文章

反转深度优先搜索或预订遍历

提问于
浏览
1

假设我有一个高度为2的完整二进制图,如下所示:

0
     1        2 
  3     4  5     6

其中边缘从0到1和0到2,1到3和1到4,2到5和2到6 .

我可以通过执行预先遍历来获得深度优先搜索顺序(0,1,3,4,2,5,6)的节点 .

是否有一些相当简单的方法可以从算法上获得预订遍历,后序遍历或有序遍历的反向,我的意思是在每个级别你先右转,然后离开,这样你最终得到(0, 2,6,5,1,4,3)?

我已经看了很多,并没有发现任何适用的东西 .

注:如果你想知道为什么我想要它我有一个基于DFS的搜索算法,因此找到比右边的节点更快的图表左边的节点 . 我正在考虑在正常的从左到右的dfs上运行并行处理,而另一个在从右到左的逆转 .

1 回答

  • 0

    在DFS中,您可以在左侧叶子上调用递归函数,并继续执行此操作,直到您不能,然后在右侧叶子上调用它,然后继续在左侧调用它完全停止 .

    相反,只需左右切换左边的每个左边,然后你可以遍历每一个右边的叶子,只有当你无法再穿过右边的叶子时,才能遍历左边的叶子 .

相关问题