Python:计算递归调用并使用number终止赋值

Python:计算递归调用并使用number终止赋值,python,recursion,graph,Python,Recursion,Graph,我想在图中找到达到某个共谋水平(从a到B的链接路径长度)的互惠链接。如何对每个递归调用进行计数,并在计数达到参数k时终止赋值 投入: •图:g={a:[a,b,c],b:[a],c:[d],d:[a]} •页面:图形中的元素[节点] •节点:输入图形 •k:共谋水平(即链路路径的最大长度) 有一种方法,你可以跟踪计数的数量 看到下面的代码,你就会明白了 def callme(n): if n[0] == 5: print 'recursion exceeds 5'

我想在图中找到达到某个共谋水平(从a到B的链接路径长度)的互惠链接。如何对每个递归调用进行计数,并在计数达到参数k时终止赋值

投入:

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

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

•节点:输入图形

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


如果k=2,对于某些页面C(长度为2的链接路径)或直接链接A->B(长度为1的链接路径),如果存在路径A->C->B,则B->A将算作节点A的反向链接.在递归调用中传递
k-1
,并在到达零时终止?对递归级别使用简单变量而不是只包含一个元素的列表不是更好吗?当然更容易理解。最好的方法是让递归级别的关键字参数默认为零,那么在第一次调用时根本不需要提供它。
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)
def callme(n=1):
    print 'recursion number %d'%(n)
    if n > 5:
        print 'recursion exceeds 5'
        return True
    else:
        return callme(n+1)
callme()