我希望在图中找到相互之间的链接,直到某个共谋级别(从A到B的链接路径长度)。一旦计数达到参数k?
,我如何计算每个递归调用并终止赋值输入:
•graph:g = {a:[a,b,c],b:[a],c:[d],d:[a]}
•page:图表中的元素[node]
•node:图中的键
•k:共谋级别(即链接路径的最大长度)
def is_reciprocal(graph, page, node, k):
if page in graph[node]:
return True
else:
is_reciprocal(graph, node, page, k)
答案 0 :(得分:0)
有一种方法,你可以跟踪没有。计数
见下面的代码,你会明白
def callme(n):
if n[0] == 5:
print 'recursion exceeds 5'
return True
n[0] = n[0] + 1
print 'recursion number %d'%(n[0])
callme(n)
n = [0]
callme(n)
希望你明白!
答案 1 :(得分:0)
下面的模板可以扩展为使用其他参数(没有参数的递归函数会很常见)。这只是展示了如何使用默认参数值来避免必须指定初始递归级别(这是我在计算级别时从1开始的。)
def callme(n=1):
print 'recursion number %d'%(n)
if n > 5:
print 'recursion exceeds 5'
return True
else:
return callme(n+1)
callme()