我目前的项目包括一组具有输入和输出的节点。每个节点可以取其输入值并生成一些输出值。这些输出可以作为其他节点的输入使用。为了最小化所需计算量,节点依赖性在应用启动时进行检查。更新节点时,它们按相互依赖的相反顺序进行更新。
也就是说,节点类似于有向图。我正在使用迭代DFS(不递归以避免在巨大图形中出现堆栈溢出)来计算依赖关系并创建一个更新节点的顺序。
我进一步想要避免图中的循环,因为循环依赖会破坏更新程序算法,并导致永久运行的循环。
通过跟踪递归堆栈上的节点,可以使用DFS递归方法找到循环,但是否有一种迭代方法可以做到这一点?然后,我可以将循环搜索嵌入主依赖项解析器中以加快速度。