Ruby 1.8.7 リファレンスマニュアル > ライブラリ一覧 > tsortライブラリ > TSortモジュール > tsort
tsort -> Array
[permalink][rdoc]頂点をトポロジカルソートして得られる配列を返します。 この配列は子から親に向かってソートされています。 すなわち、最初の要素は子を持たず、最後の要素は親を持ちません。
閉路が存在するとき、例外TSort::Cyclicを起こします。
使用例
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]