【发布时间】:2012-11-12 21:13:06
【问题描述】:
您好,我了解邻接表和矩阵的概念,但我对如何在 Python 中实现它们感到困惑:
实现以下两个示例的算法实现但从一开始就知道输入,因为他们在示例中对其进行了硬编码:
对于邻接列表:
a, b, c, d, e, f, g, h = range(8)
N = [
{b:2, c:1, d:3, e:9, f:4}, # a
{c:4, e:3}, # b
{d:8}, # c
{e:7}, # d
{f:5}, # e
{c:2, g:2, h:2}, # f
{f:1, h:6}, # g
{f:9, g:8} # h
]
对于邻接矩阵:
a, b, c, d, e, f, g, h = range(8)
_ = float('inf')
# a b c d e f g h
W = [[0,2,1,3,9,4,_,_], # a
[_,0,4,_,3,_,_,_], # b
[_,_,0,8,_,_,_,_], # c
[_,_,_,0,7,_,_,_], # d
[_,_,_,_,0,5,_,_], # e
[_,_,2,_,_,0,2,2], # f
[_,_,_,_,_,1,0,6], # g
[_,_,_,_,_,9,8,0]] # h
再次感谢任何帮助,谢谢!
【问题讨论】:
-
“不知道输入”
-
例如我知道为了创建邻接列表或矩阵会有一个输入,但我不知道输入是什么,所以基本上是为了有一个每当我输入顶点和边以创建邻接列表或矩阵时的算法...
-
邻接矩阵中的无穷大代表什么?
-
这只是一个例子,它相当于一个缺失边的无穷大,你可以忽略它,认为它代表没有边。
-
好的,那么 0 代表什么?对我来说,你似乎把它们弄错了。
标签: python algorithm adjacency-list adjacency-matrix