使用循环依赖检测进行依赖排序

dependency sort with detection of cyclic dependencies

本文关键字:依赖 排序 检测 循环      更新时间:2023-10-16

在你把维基百科和博客的链接扔到我面前之前,请先听我说完。

我正试图找到最优的算法/函数做依赖排序…的东西。每个项都有一个它的依赖项列表。

我想要一些基于迭代器的东西,但这不是很重要。

重要的是,算法指出正是哪些项是依赖循环的一部分。我想给出在这种情况下的详细错误信息。

实际上,我正在考虑从"依赖节点"类中子类化我的项目,该类具有完成工作所需的布尔值/函数。很酷(但描述性)的名字是受欢迎的:)

这通常被称为拓扑排序。大多数涉及拓扑排序的书籍/论文/其他内容当然也会涉及循环检测。

我不太明白为什么很难找到依赖循环,如果有的话!在应用BFS算法找出所有依赖项时,您只需检查是否有任何已经通过的节点。如果有的话,你只需回滚你向下访问一个节点的方式,并标记所有节点,直到你到达指定节点的第一次访问。通行证上的所有卡片都将被标记为一个周期。(只要留下评论,如果你需要的话,我会给你一个代码)