有向无环图的拓扑排序
AOV网与拓扑排序日常生活中常需要流程化的完成有依赖关系的事(比如“穿鞋前必须穿裤,穿鞋前必须穿袜”)。这类关系适合用有向无环图描述,其中的顶点表示任务,边表示任务之间的依赖关系。这个图之所以“无环”是因为如果存在环会导致任务“循环依赖”,导致环路上的任务无法找到可行的执行次序,即有环时这个图就没有意义。这样的描述任务依赖的有向无环图一般称为AOV网,在AOV网执行拓扑排序的结果是得到由AOV网所有顶点组成的序列,按该序列的次序执行任务不会违反依赖关系。
下面给出拓扑排序的定义“有向无环图上的拓扑排序(Topological Sorting)是将图的所有顶点排成有序序列,对于序列中的任意两顶点,若存在u到v的路径则v必然排在u之后”。
class AOV:def __init__(self):
self.d… 阅读全文