【发布时间】: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 上有很多类似的问题。大学考试时间快到了吗?
-
动态编程??您可以从较小的子问题开始,然后再处理较大的问题。
-
@Cameron:你说得对:people.csail.mit.edu/thies/6.046-web/recitation9.txt
-
@Avinash:在 StackOverflow 上不赞成让别人为你做作业。你可能想考虑自己做。
-
@All:这不是作业,我正在努力学习和编写图形库(code.google.com/p/graphplusplus/source/browse/Graph/src/Graph.h),在从 CLRS 读取 DFS 的过程中,我认为递归选项不会很好。
标签: c++ algorithm data-structures recursion