2013-03-21 64 views
0

如何將下面的圖轉換爲'set'。因爲我有一張圖。我需要檢查該圖是這個圖的子集。我們可以將圖形轉換成ruby集合

require 'rgl/adjacency' 
dg = RGL::DirectedAdjacencyGraph[1,2,3,4,5,6,3,2,4] 

謝謝。

回答

1

to_set方法會爲你做。

require 'rgl/adjacency' 

dg = RGL::DirectedAdjacencyGraph[1,2,3,4,5,6,3,2,4] 
dg_subgraph = RGL::DirectedAdjacencyGraph[1,2] 

dg_subgraph.to_set.subset? dg.to_set # => true 

爲什麼?

https://github.com/javanthropus/rgl/blob/master/lib/rgl/adjacency.rb#L11

用於表示一個頂點的鄰接表類,默認情況下,一組

除非另有配置它。

+0

我還有一個問題。即dg的值是=> [(1,2),(2,3),(3,4),(4,5),(5,6),(3,2),(2,4) ]。我需要將此輸出更改爲[[1,2],[2,3],[3,4],[4,5],[5,6],[3,2],[2,4]] 。我的意思是,想要將圖形轉換爲數組。提前致謝。 – Guru 2013-03-25 12:04:04

+0

'dg.edges.map {| edge | edge.to_a}' – 2013-03-26 04:56:59

+0

那麼你會得到結果作爲返回從上面的表達式,這需要分配給一個變量。即'edge_list_a = dg.edges.map {| edge | edge.to_a}' – 2013-03-26 20:09:47

相關問題