我认为许多递归算法可以被视为深度优先搜索(DFS)。问题在于,你认为DFS操作的图是什么。例如,如果你有一个如下类型的递归: f(n1,...,nk)=G(f(n1',...nk'), f(n1'',...,nk''),...) 这段文字讲的是将递归关系转化为一个图,在这个图上进行深度优先搜索(DFS)和递推计算是等价的。举例说明了如何将斐波那契数列转化为这样的图,并解释了DFS使用记忆化技术,每个配置只计算一次,而不是像朴素的斐波那契数列实现需要反复计算的原因。同时,提到了一个反例,即对于某些函数,把其参数看成节点建立的图无法被转化为DFS形式。
不,这里有一个算法,你不会找到DFS遍历。 func A(graph): if graph is empty: stop print random vertex from a graph func A(grap without this vertex) 这显然是一个在图上的递归算法。尝试找到一个类似的深度优先搜索算法。