我试图找到一个有向无环图的宽度......由一个任意排序的节点列表表示,甚至没有邻接列表。
图形/列表用于类似 GNU Make 的并行工作流管理器,它使用文件作为执行顺序的标准。每个节点都有一个源文件和目标文件列表。我们有一个哈希表,因此,给定一个文件名,可以确定生成它的节点。这样,我们可以通过使用该表检查生成每个源文件的节点来确定节点的父节点。
这是我在这一点上唯一的能力,没有严重改变代码。该代码已经公开使用了一段时间,我们最不想做的就是显着改变结构并发布一个糟糕的版本。不,我们没有时间进行严格的测试(我在学术环境中)。理想情况下,我们希望我们可以做到这一点,而不会做任何比向节点添加字段更危险的事情。
我将发布一个社区 wiki 答案,概述我当前的方法及其缺陷。如果有人想编辑它,或将其用作起点,请随意。如果我可以做任何事情来澄清事情,我可以在需要时回答问题或发布代码。
谢谢!
编辑:对于任何关心的人,这将在 C 中。是的,我知道我的伪代码在一些非常糟糕的 Python 外观中。我有点希望语言并不重要。