有 n 个日程,互相可能有先后依赖关系,例如 A 必须在 B 之前执行,依赖关系可以用 N*N 的 01 矩阵表示。
求:给出要执行的日程,ABCD 等等,返回一个合法的执行顺序。
感觉应该是非常基础的问题,无奈还是不会。。
我现在想的方法是类似穷举:
依次取任意一个没有任何依赖的日程,执行日程 A 后,把只依赖日程 A 的日程设为无依赖;依次深度优先搜索,无合法日程顺序就搜索另一个叶子。。。
有没有更好的方法
求:给出要执行的日程,ABCD 等等,返回一个合法的执行顺序。
感觉应该是非常基础的问题,无奈还是不会。。
我现在想的方法是类似穷举:
依次取任意一个没有任何依赖的日程,执行日程 A 后,把只依赖日程 A 的日程设为无依赖;依次深度优先搜索,无合法日程顺序就搜索另一个叶子。。。
有没有更好的方法