我想制作一个代码来找到树中最快的方法,但是我在输入正确方面遇到了麻烦。 输入存在于多个节点之外,其后是每个节点的相邻节点的行,最后一行是包含起始和结束节点的行。
6
1 4
0 2 4
1 3
2 4 5
0 1 3
3
0 3
这将是6,节点和节点0将与节点1和4连接,节点1与节点0,节点2和节点4等连接,我们希望找到从节点0到节点3的路径
到目前为止我已经
了numberofnodes=int(input())
no_of_lines = numberofnodes
lines = ""
for i in range(numberofnodes):
lines+=input()+"\n"
startfinish=(input().split())
如果我打印节点数,行数和startfinish,我得到
6
1 4
0 2 4
1 3
2 4 5
0 1 3
3
['0', '3']
我一直试图让列表中的节点的邻居也一样,所以我的其余代码都可以工作,但我遇到了麻烦。我尝试过的所有内容都将它们列在一个列表中,但我希望它们分开列表。
答案 0 :(得分:0)
首先,在树中寻找最快(可能是最短的)方式(路径)是无稽之谈,因为每个节点只有1条路径。您可能希望在图表上执行此操作(tree是一种特殊类型的graph)。
除了术语,从空列表开始
lines = []
,将保留其他列表。
在你的for循环中,你还需要像对待最后一行一样分割线,并且将字符串解释为数字可能是有用的。您可以使用追加添加项目到列表,请参阅documentation。
lines = []
for i in range(numberofnodes):
line = []
for word in input().split():
line.append(int(word))
lines.append(line)
打印lines
(现在是列表列表,即嵌套列表)输出如下:
[[1, 4], [0, 2, 4], [1, 3], [2, 4, 5], [0, 1, 3], [3]]
查看列表中的一些基本python教程,逐步完成更难的练习,在完全理解如何使用列表之前不要尝试编写难题。