查找节点的直接和间接后继者(scala-graph)
Find the direct and indirect successors of a node (scala-graph)
在 scala 图中,方法diSuccessors
允许找到节点的直接后继。例如:
import scalax.collection.mutable.Graph
import scalax.collection.GraphPredef._, scalax.collection.GraphEdge._
val g = Graph(0~>1, 1~>4, 1~>2,2~>3)
g.get(1).diSuccessors //return Set(2, 4): scala.collection.immutable.Set
但我的问题是找到所有直接或间接连接到节点的后继。在我的示例中,我将拥有:
import scalax.collection.mutable.Graph
import scalax.collection.GraphPredef._, scalax.collection.GraphEdge._
val g = Graph(0~>1, 1~>4, 1~>2,2~>3)
g.get(1).AllSuccessors //return Set(2, 4, 3): scala.collection.immutable.Set
感谢您的帮助。
您可以通过创建子图(withSubgraphs
方法)并从中删除您的节点来获得 AllSuccessors
。
import scalax.collection.mutable.Graph
import scalax.collection.GraphPredef._
val graph = Graph(0 ~> 1, 1 ~> 4, 1 ~> 2, 2 ~> 3)
val node = graph.get(1)
val subgraph = node.withSubgraph().toSet //Set(1, 2, 4, 3)
val allSuccessors = subgraph - node //Set(4, 2, 3)
在 scala 图中,方法diSuccessors
允许找到节点的直接后继。例如:
import scalax.collection.mutable.Graph
import scalax.collection.GraphPredef._, scalax.collection.GraphEdge._
val g = Graph(0~>1, 1~>4, 1~>2,2~>3)
g.get(1).diSuccessors //return Set(2, 4): scala.collection.immutable.Set
但我的问题是找到所有直接或间接连接到节点的后继。在我的示例中,我将拥有:
import scalax.collection.mutable.Graph
import scalax.collection.GraphPredef._, scalax.collection.GraphEdge._
val g = Graph(0~>1, 1~>4, 1~>2,2~>3)
g.get(1).AllSuccessors //return Set(2, 4, 3): scala.collection.immutable.Set
感谢您的帮助。
您可以通过创建子图(withSubgraphs
方法)并从中删除您的节点来获得 AllSuccessors
。
import scalax.collection.mutable.Graph
import scalax.collection.GraphPredef._
val graph = Graph(0 ~> 1, 1 ~> 4, 1 ~> 2, 2 ~> 3)
val node = graph.get(1)
val subgraph = node.withSubgraph().toSet //Set(1, 2, 4, 3)
val allSuccessors = subgraph - node //Set(4, 2, 3)