algorithm - 简单依赖算法的问题

标签 algorithm sorting tree dependencies directed-acyclic-graphs

在我的 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/

相关文章:

php - 创建行和列中唯一的数字矩阵

c++ - 如果重复使用变量值,如何使变量保持在常量以下?

c# - 重新排序表行,更新数据库中的优先级

java - 从树数据结构打印纯文本树(java)

matlab - MATLAB 中的霍夫曼编码 - 传输字典/树

c++ - 需要包含运行任务时间的二维矩阵的最优解

java - 计算数组中某种元素数量的有效方法

c - 在 C 中使用 strcmp 和 bubblesort 对二维数组进行排序

C++ 对指针 vector 进行排序,其中对象表示矩阵坐标

java - 澄清二叉搜索树中的有序遍历