在我的 webapp 中,我们有许多字段汇总其他字段,这些字段汇总更多字段。我知道这是一个有向无环图。
当页面加载时,我计算所有字段的值。我真正想做的是将我的 DAG 转换为一维列表,其中包含计算其中字段的有效顺序。
例如: A = B + D, D = B + C, B = C + E 高效的计算顺序:E -> C -> B -> D -> A
现在我的算法只是迭代地向 List 中进行简单的插入,但我遇到了一些情况,它开始崩溃。我在想需要的是将所有依赖关系计算成树结构,然后从那里将其转换为一维形式?是否有一种简单的算法可以将这样的树转换为有效的排序?
最佳答案
你在找topological sort吗?这在 DAG 上强加了一个排序(一个序列或列表)。例如,电子表格使用它来计算单元格之间的依赖关系以进行计算。
关于algorithm - 简单依赖算法的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1192200/