2017-08-23 11 views
0

私はscalax.collection.Graphを持っており、特定のノードのすべての後継ノードのコレクションを取得したいと考えています。グラフの特定のノードの後続ノードをすべて取得するにはどうすればよいですか?

import scalax.collection.Graph 

... 

val node = Graph('f~>'g, 'g~>'y, 'f~>'h).get('f) 
val successors = <statement to get successors of f> // = collection with g and h 

私はScalaを学んでいて、すでに検索してこれを行う方法を数時間試しましたが、わかりません。

答えて

1
scala> import scalax.collection.Graph 
import scalax.collection.Graph 

scala> import scalax.collection.GraphPredef._ 
import scalax.collection.GraphPredef._ 

scala> val node = Graph('f~>'g, 'g~>'y, 'f~>'h).get('f) 
node: scalax.collection.Graph[Symbol,scalax.collection.GraphEdge.DiEdge]#NodeT = 'f 

scala> val successors = node.outgoing.map(_.to.value) 
successors: scala.collection.immutable.Set[Symbol] = Set('g, 'h) 
+0

これは動作し、また、 'f'が' f'- '' f''が存在する場合、 'f'が後継になります。私は実際に別の解決策 'val successors = node.diSuccessors'を見つけましたが、これは' f''が 'f'''f''の後に続くという結果にはなりません。 –

関連する問題