Python:计算递归调用并使用数字终止分配



我想在图形中找到指向某个串通级别(从 A 到 B 的链接路径长度)的相互链接。如何计算每个递归调用并在计数达到参数 k 后终止赋值?

输入:

• 图形: g = {a : [a, b, c], b : [a], c : [d], d : [a]}

• 页面:图中的元素[节点]

• 节点:图形中的键

• k:串通级别(即链路路径的长度.max)

def is_reciprocal(graph, page, node, k):
if page in graph[node]:
return True
else:
is_reciprocal(graph, node, page, k)

有一种方法,你可以跟踪没有。

计数请参阅下面的代码,你会得到想法

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 开始,因为我们正在计算级别)。

def callme(n=1):
print 'recursion number %d'%(n)
if n > 5:
print 'recursion exceeds 5'
return True
else:
return callme(n+1)
callme()

相关内容

最新更新