一般来说,问题是什么,有一个列表(图)。如果你运行这个代码。这个结果不会是完整的,但我希望结果将是箭头所示的地方。如何解决我的问题?如果你能重写这段代码。我试着用一个以上的键列表(成对的第一个数字),找到这个并重写到第二个列表。我想沿着图表往下看。RESULT
link = [[1, 3], [3, 2], [2, 6], [1, 4], [4, 3], [3, 7], [7, 8], [8, 9]]
link_keys = []
cpy_link = []
number = 0
diametr = 0
k = len(link)
m = 0
def circle_for_net(number):
for j in range(k):
while number == link[j][0]:
number = link[j][1]
cpy_link.append(number)
circle_for_net(number)
number = 0
break
def create_keys(link):
for j in range(k):
link_keys.append(link[j][0])
for i in range(k - 1):
for j in range(k - i - 1):
if link[j][0] > link[j + 1][0]:
link[j], link[j + 1] = link[j + 1], link[j]
create_keys(link)
for i in range(k):
number = link[i][1]
cpy_link.append(link[i][0])
cpy_link.append(number)
circle_for_net(number)
print(cpy_link)
if(diametr < len(cpy_link)):
diametr = len(cpy_link)
cpy_link.clear()
print(diametr)
似乎要在有向无环图(DAG)中找到从源节点到汇节点的所有可能路径。这有一个答案here,但仅适用于一对节点:
假设你有一本字典
nodes_children = {1: [3, 4], 3: [2, 7], 2: [6], 4: [3], 7: [8], 8: [9]}
将节点映射到它的子节点,以及一个数组sinks = [6, 9]
和DAG中的接收器,这可以很容易地扩展以找到所有这样的路径:最后,如果您不想手工计算
nodes_children
和sinks
,可以编写相关问题 更多 >
编程相关推荐