【问题标题】:How to convert from recursive algorithm to iterative [closed]如何从递归算法转换为迭代[关闭]
【发布时间】:2011-11-30 10:26:58
【问题描述】:

如何将以下recursive 算法转换为iterative

DFS-Visit(U)
    color[u] = GREY 
    d[u]  =time
    time = time + 1
    for each v = Adj[u] do 
        if color[v] = WHITE
            then p[v] = u
                DFS-Visit(v)
    color[u] = BLACK
    f[u] = time
    time = time + 1

【问题讨论】:

  • 你试过什么?最近 StackOverflow 上有很多类似的问题。大学考试时间快到了吗?
  • 动态编程??您可以从较小的子问题开始,然后再处理较大的问题。
  • @Avinash:在 StackOverflow 上不赞成让别人为你做作业。你可能想考虑自己做。
  • @All:这不是作业,我正在努力学习和编写图形库(code.google.com/p/graphplusplus/source/browse/Graph/src/Graph.h),在从 CLRS 读取 DFS 的过程中,我认为递归选项不会很好。

标签: c++ algorithm data-structures recursion


【解决方案1】:

使用堆栈来保存状态而不是递归调用它

这可能对您有所帮助:http://www.cs.mcgill.ca/~pnguyen/251F09/DFS.pdf

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-27
    • 2017-02-22
    • 1970-01-01
    • 1970-01-01
    • 2016-06-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多