Algorithm 依赖项的排序依赖项

Algorithm 依赖项的排序依赖项,algorithm,graph,dependencies,Algorithm,Graph,Dependencies,我目前有一个叫做“节点”的系统,每个节点都有依赖关系。 我的问题是删除节点时,它的依赖关系必须存在,因此现在我需要确定删除节点的正确顺序。 这样做的方法是什么?(最终的语言实现将是PHP) 这本质上是找到有向图的边的问题,其中每条边表示一个依赖项(因此您将有一条从E到a的边,因为a依赖于E,其余的情况类似) 有向图的拓扑排序(有时缩写为topsort或toposort)或拓扑排序是其顶点的线性排序,因此对于从顶点u到顶点v的每个有向边uv,u在排序中位于v之前 解决此问题的一种方法是重复拾取

我目前有一个叫做“节点”的系统,每个节点都有依赖关系。 我的问题是删除节点时,它的依赖关系必须存在,因此现在我需要确定删除节点的正确顺序。 这样做的方法是什么?(最终的语言实现将是PHP)


这本质上是找到有向图的边的问题,其中每条边表示一个依赖项(因此您将有一条从
E
a
的边,因为
a
依赖于
E
,其余的情况类似)

有向图的拓扑排序(有时缩写为topsort或toposort)或拓扑排序是其顶点的线性排序,因此对于从顶点u到顶点v的每个有向边uv,u在排序中位于v之前

解决此问题的一种方法是重复拾取没有传入边的节点,然后从该节点删除所有传出边(有关详细信息,请参见)