寻找反向依赖算法

时间:2013-09-20 16:27:26

标签: algorithm

我有一个依赖列表,例如BLT依赖于培根,生菜和番茄,而今天的午餐取决于BLT和番茄汤。我想扭转这种关系,即对所有成分,列出依赖于它们的一切。因此,BLT和今天的午餐都需要培根。我知道包管理器可以做到这一点,但我需要底层算法。感谢。

1 个答案:

答案 0 :(得分:2)

您正在寻找的是广度优先搜索。如果B依赖于A,则创建A连接到B的图形。然后,从任何节点(称为A)启动BFS,您希望在终止(遍历所有可到达节点)并遇到每个节点之前查找依赖于它的内容在BFS期间取决于A。

http://en.wikipedia.org/wiki/Breadth-first_search