Python:计算递归调用并使用数字来终止赋值

时间:2017-05-27 10:39:25

标签: python recursion graph

我希望在图中找到相互之间的链接,直到某个共谋级别(从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)

2 个答案:

答案 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()