superclass=
type=module
library=tsort
extended=
included=

TSort は強連結成分に関する Tarjan のアルゴリズムを用いた
トポロジカルソートの実装です。

TSort は任意のオブジェクトを有向グラフとして解釈できるように設計されています。
TSort がオブジェクトをグラフとして解釈するには2つのメソッドを要求します。
すなわち、tsort_each_node と tsort_each_child です。

 * tsort_each_node はグラフ上のすべての頂点を巡回するのに用いられます。
 * tsort_each_child は与えられた頂点の子を巡回するのに用いられます。

頂点同士の等価性は eql? と hash によって定義されます。
これは TSort が内部でハッシュを用いているからです。
