我有一个收藏:
List<VPair<Item, List<Item>> dependencyHierarchy;
成对的第一个项目是某个对象(项目),第二个项目是第一个项目所依赖的相同类型对象的集合。我想获得一个List<Item>依序排列的依存关系,因此没有依赖于第一个元素的项目,依此类推(没有循环依存关系!)。
List<Item>
输入:
Item4取决于Item3和Item5 Item3取决于Item1 Item1不依赖任何一个 Item2取决于Item4 Item5不依赖任何一个
结果:
项目1 项目5 项目3 项目4 项目2
谢谢。
使用拓扑排序的完美示例:
http://en.wikipedia.org/wiki/Topological_sorting
它会为您提供所需的确切信息。