るりまサーチ

最速Rubyリファレンスマニュアル検索!
44件ヒット [1-44件を表示] (0.025秒)
トップページ > クエリ:Array[x] > クエリ:each[x] > ライブラリ:tsort[x]

別のキーワード

  1. array fill
  2. array []
  3. array sample
  4. array fetch
  5. array new

モジュール

キーワード

検索結果

TSort.strongly_connected_components(each_node, each_child) -> Array (401.0)

強連結成分の集まりを配列の配列として返します。 この配列は子から親に向かってソートされています。 各要素は強連結成分を表す配列です。

...結成分を表す配列です。

引数 each_node と each_child でグラフを表します。

@param each_node グラフ上の頂点をそれぞれ評価するcallメソッドを持つオブ
ジェクトを指定します。

@param each_child 引数で与えられた頂点の...
...e 'tsort'

g = {1=>[2, 3], 2=>[4], 3=>[2, 4], 4=>[]}
each
_node = lambda {|&b| g.each_key(&b) }
each
_child = lambda {|n, &b| g[n].each(&b) }
p TSort.strongly_connected_components(each_node, each_child)
# => [[4], [2], [3], [1]]

g = {1=>[2], 2=>[3, 4], 3=>[2], 4=>[]}
each
_node = lambda {|&b| g.each_k...
...ey(&b) }
each
_child = lambda {|n, &b| g[n].each(&b) }
p TSort.strongly_connected_components(each_node, each_child)
# => [[4], [2, 3], [1]]
//}

@see TSort#strongly_connected_components...

TSort.tsort(each_node, each_child) -> Array (401.0)

頂点をトポロジカルソートして得られる配列を返します。 この配列は子から親に向かってソートされています。 すなわち、最初の要素は子を持たず、最後の要素は親を持ちません。

...要素は親を持ちません。

引数 each_node と each_child でグラフを表します。

@param each_node グラフ上の頂点をそれぞれ評価するcallメソッドを持つオブ
ジェクトを指定します。

@param each_child 引数で与えられた頂点の...
...ます。

@raise TSort::Cyclic 閉路が存在するとき、発生します。

//emlist[使用例][ruby]{
require 'tsort'

g = {1=>[2, 3], 2=>[4], 3=>[2, 4], 4=>[]}
each
_node = lambda {|&b| g.each_key(&b) }
each
_child = lambda {|n, &b| g[n].each(&b) }
p TSort.tsort(each_node, each_child) # => [4,...
...2, 3, 1]

g = {1=>[2], 2=>[3, 4], 3=>[2], 4=>[]}
each
_node = lambda {|&b| g.each_key(&b) }
each
_child = lambda {|n, &b| g[n].each(&b) }
p TSort.tsort(each_node, each_child) # raises TSort::Cyclic
//}

@see TSort#tsort...

TSort#strongly_connected_components -> Array (127.0)

強連結成分の集まりを配列の配列として返します。 この配列は子から親に向かってソートされています。 各要素は強連結成分を表す配列です。

...uby]{
require 'tsort'

class Hash
include TSort
alias tsort_each_node each_key
def tsort_each_child(node, &block)
fetch(node).each(&block)
end
end

non_sort = {1=>[2], 2=>[3, 4], 3=>[2], 4=>[]}

p non_sort.strongly_connected_components
#=> [[4], [2, 3], [1]]
//}

@see TSort.strongly_conn...

TSort#tsort -> Array (127.0)

頂点をトポロジカルソートして得られる配列を返します。 この配列は子から親に向かってソートされています。 すなわち、最初の要素は子を持たず、最後の要素は親を持ちません。

...ise TSort::Cyclic 閉路が存在するとき、発生します。

//emlist[使用例][ruby]{
require 'tsort'

class Hash
include TSort
alias tsort_each_node each_key
def tsort_each_child(node, &block)
fetch(node).each(&block)
end
end

sorted = {1=>[2, 3], 2=>[3], 3=>[], 4=>[]}.tsort
p...
...sorted #=> [3, 2, 1, 4]
//}

@see TSort.tsort...