1. ホーム
  2. c#

[解決済み] 依存関係のあるオブジェクトを依存関係でソートする方法

2023-06-26 11:13:54

質問

コレクションを持っています。

List<VPair<Item, List<Item>> dependencyHierarchy;

ペアの最初の項目は何らかのオブジェクト(item)で、2番目の項目は最初の項目が依存する同じ型のオブジェクトのコレクションである。私は List<Item> を依存関係の順に取得したいので、最初の要素に依存するアイテムなどは存在しません(循環する依存関係はありません!)。

入力します。

Item4 は Item3 と Item5 に依存する
項目 3 は項目 1 に依存する
アイテム1はいずれにも依存しない
Item2 は Item4 に依存している 
Item5 はいずれにも依存しない 

結果です。

項目1
項目5
項目3
項目4
項目2

ありがとうございました。

解決方法

トポロジカルソーティング (おかげさまで ロイック・フェヴリエ に感謝)

C#の例 , Java の例 (おかげさまで xcud に感謝)

どのように解決するのですか?

トポロジカルソートの完璧な例です。

http://en.wikipedia.org/wiki/Topological_sorting

必要なものを的確に提供してくれます。