我有一个简单的图,有4个节点A
、B
、C
、D
以及以下边:
[A,B]
[B,D]
[B,C]
我想找到从节点C开始的路径,给定一定的长度n
。例如:
对于n = 1
,我将只有[C]
作为可能的路径。结果是1
对于n = 2
,我们只有[C,B]
。结果是1
对于n = 3
,我们有[C,B,C]
,[C,B,D]
,[C,B,A]
。结果是3
等等
我编写了以下(python)代码:
dg = {'A':['B'],
'B':['C','D','A'],
'D':['B'],
'C':['B']}
beg = ['C']
def makePath(n):
count = 0
curArr = beg
for i in range(n):
count = len(curArr)
tmp = []
for i in curArr:
tmp.extend(dg[i])
curArr = tmp
return count
然而,它在n=12
以上变得非常缓慢。有没有更好的算法来解决这个问题,更重要的是。一种可以推广到任何无向图(即最多有20个节点)的方法
目前没有回答
相关问题 更多 >
编程相关推荐