在Scala中表示图形作为邻接列表

时间:2016-11-08 04:48:50

标签: scala graph

此处显示了作为图表的邻接列表表示,

https://www.khanacademy.org/computing/computer-science/algorithms/graph-representation/a/representing-graphs

我对Scala相当新,所以这是我假设的相当微不足道的事情。我想在Scala中将我的图形表示为邻接列表,但边缘应该具有权重。所以我想在每个顶点的邻接列表中为每个条目设置一个元组,其中元组是顶点和边缘成本。希望这是有道理的。我只想知道如何将这个图形表示写入val。

例如:

A -> [(B, 1), (C, 1), (D, 1)]

B -> [(A, 1), (C, 2), (D, 2)]

C -> [(A, 1), (B, 2)]

D -> [(A, 1), (B, 2)]

我如何在Scala中将其写为val?列表的索引可以表示节点的字母。这会是List[List[(String, Int)]]吗?当我真的想要指定变量的类型时,我发现Scala很难为变量赋值。

1 个答案:

答案 0 :(得分:0)

  

我如何在Scala中将其写为val?

val adjList = List(List(("b", 1), ("c", 1), ("d", 1)), List(...), List(...), List(...))

推断出类型为List[List[(String, Int)]]。您可以根据需要手动指定它们,但不是必需的。