【发布时间】:2017-05-17 12:07:40
【问题描述】:
我当前的项目具有一组带有输入和输出的节点。每个节点都可以获取其输入值并生成一些输出值。这些输出可以用作其他节点的输入。为了最小化所需的计算量,在应用程序启动时检查节点依赖关系。更新节点时,它们会以相互依赖的相反顺序更新。
也就是说,节点类似于有向图。我正在使用迭代 DFS(不使用递归来避免大图中的堆栈溢出)来计算依赖关系并创建更新节点的顺序。
我还想避免图中的循环,因为循环依赖会破坏更新器算法并导致永远运行的循环。
有通过跟踪递归堆栈上的节点来使用 DFS 查找循环的递归方法,但是有没有办法迭代地完成它?然后我可以将循环搜索嵌入到主依赖解析器中以加快速度。
【问题讨论】:
标签: recursion depth-first-search directed-graph