Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Koenigsberg python桥中的图形/树行走_Python_Graph_Tree - Fatal编程技术网

Koenigsberg python桥中的图形/树行走

Koenigsberg python桥中的图形/树行走,python,graph,tree,Python,Graph,Tree,给出下图(来自Koenigsberg问题的桥) 我试图创建一个循环,其中n次迭代对应于给定特定起始点的行走长度 对于从节点a开始的长度为2的行走,我们应该得到如下结果: [["c", "d"],["a", "b", "d","a", "b", "c"], ["c", "d","c", "d","a", "b", "c","c", "d","c", "d","a", "b", "d"]] 首先,我需要将链接附加到起始节点的每个元素,以进入树的下一级 我试过以下方法 stnode = "a" wa

给出下图(来自Koenigsberg问题的桥)

我试图创建一个循环,其中n次迭代对应于给定特定起始点的行走长度

对于从节点a开始的长度为2的行走,我们应该得到如下结果:

[["c", "d"],["a", "b", "d","a", "b", "c"], ["c", "d","c", "d","a", "b", "c","c", "d","c", "d","a", "b", "d"]]
首先,我需要将链接附加到起始节点的每个元素,以进入树的下一级

我试过以下方法

stnode = "a"
walk = list()
walk.append(graph[stnode])

for i in graph [stnode]:
    walk.append(graph[i])
    print walk
返回

[['c', 'd'], ['a', 'b', 'd']]
[['c', 'd'], ['a', 'b', 'd'], ['a', 'b', 'c']]
但我只需要

[['c', 'd'], ['a', 'b', 'd'], ['a', 'b', 'c']]

问题是您只创建了一个列表,并将其附加到该列表中。 相反,您应该有一个主
walk
列表,并且还应该为每个级别创建一个新列表,用图表中的任何内容扩展它,然后将该列表附加到
main
walk列表

stnode = "a"
walk = list()
walk.append(graph[stnode])

next_walk = list()
for i in graph [stnode]:
    next_walk.extend(graph[i])
walk.append(next_walk)
print walk
以下是您可以一次完成全部任务的方法:

walk_len = 2
start_node = 'a'
walk = [[start_node]]
for _ in range(walk_len+1):
    next_nodes = list()
    for node in walk[-1]:
        next_nodes.extend(graph[node])
    walk.append(next_nodes)
walk = walk[1:]

“但它不起作用”:可怕的问题描述。编辑你的问题,并澄清它为什么没有达到你的预期。什么是
开始
?这里的StackOverflow规则是:寻求调试帮助的问题(“为什么此代码不工作?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现此问题所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:如何创建一个最小的、完整的和可验证的示例。您真的想要
[['c','d'],['a','b','d'],['a','b','c']
?或者
['c','d'],['a','b','d','a','b','c'].
?理想情况下['c','d'],['a','b','d','a','b','c']]
walk_len = 2
start_node = 'a'
walk = [[start_node]]
for _ in range(walk_len+1):
    next_nodes = list()
    for node in walk[-1]:
        next_nodes.extend(graph[node])
    walk.append(next_nodes)
walk = walk[1:]