たとえば、次のようなグラフにいくつかのアルゴリズムを記述する場合
def f(graph):
#graph is dictionary of pairs vertex_i:{set of edges (i,j)} for 1<=i,j<=n
def g(vertex):
for vertex1 in graph:
do sth
...
for (i,j) in graph[vertex1]:
...
g(j)#recursive call
...
return ...
return g(1)
再帰を避ける必要がある場合、コードが非常に長く複雑になるため、再帰の深さが限られていると非常に煩わしい場合があります。無限の深さに到達する方法はありますか? おそらく、次の方法で問題の一般的な解決策を説明できます
def nthNumber(n):
if n==1: return 1
else: return nthNumber(n-1)+1
(私はそれが単純なばかげていることを知っています.「nthNumber(n):return nだけを書くべきだった」のような答えを出さないでください-私は一般的な解決策に興味があります). 手伝ってくれてありがとう!