【问题标题】:creating an adjacency List for Graphs in Scala在 Scala 中为图创建邻接列表
【发布时间】:2015-07-27 13:11:31
【问题描述】:

我有一个边列表,用于无向图,保存在 var edges: List[Edge] 中。其中一些是。

A, B, 6
B, A, 6
A, D, 4
D, A, 4
B, C, 10
C, B, 10
B, D, 7
D, B, 7
B, E, 7
E, B, 7
C, D, 8
D, C, 8
C, E, 5
E, C, 5
C, F, 6
F, C, 6
D, E, 12
E, D, 12
E, F, 7
F, E, 7

我正在尝试将它们放入邻接列表中,以这种方式:

val adjList: List[(Vertex, List[Vertex])] = 
      (graph.edges.groupBy(_.source).map 
          { case (k,v) => (k, v.map {_.destination}) }).toList

但是,它不起作用。我做错了什么? :(

编辑:


没错(我的错,看我下面的评论)!

【问题讨论】:

  • 但是,它不起作用”是什么意思?你得到哪个错误/输出?
  • @Valerin,不,List[T] 只有一个类型参数。
  • 您可以使用mapValues 使其稍微简单一些:edges.groupBy(_.source).mapValues(edges => edges.map(_.destination)).toList
  • 您可以查看scala-graph.org 以供参考。或者可以作为一个现成的库使用
  • 如果你修复了这个问题,你应该添加一个答案并标记它以防止它被注册为“未回答”

标签: scala graph adjacency-list


【解决方案1】:

我给出的解决方案是正确的。简而言之,这是我这边的错误测试。谢谢大家的帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-10
    • 1970-01-01
    • 2018-04-25
    • 2010-11-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多