利用有向网的的邻接表存储结构实现关键路径算法
时间: 2023-08-06 09:07:08 浏览: 85
关键路径算法是指在一个有向无环图中,找出所有关键活动路径的算法。该算法主要用于确定项目的最短完成时间和最早开始时间。下面是利用邻接表存储结构实现关键路径算法的步骤:
1. 建立有向无环图的邻接表存储结构,并初始化各个节点的最早开始时间(EST)和最晚开始时间(LST)为0。
2. 对每个节点进行遍历,计算其最早开始时间(EST)和最晚开始时间(LST)。
2.1 对于每个节点,计算它的最早开始时间(EST)。
2.1.1 对于源节点,其最早开始时间(EST)为0。
2.1.2 对于其他节点,其最早开始时间(EST)为它的所有前驱节点的最晚完成时间(LFT)中的最大值。
2.2 对于每个节点,计算它的最晚开始时间(LST)。
2.2.1 对于汇节点,其最晚开始时间(LST)等于其最早开始时间(EST)。
2.2.2 对于其他节点,其最晚开始时间(LST)为后继节点的最早开始时间(EST)中的最小值减去该节点的执行时间。
3. 根据各个节点的最早开始时间(EST)和最晚开始时间(LST),计算出每个活动的最早开始时间(EF)和最晚开始时间(LF)。
3.1 对于每个活动,其最早开始时间(EF)等于起点的最早开始时间(EST)加上该活动的执行时间。
3.2 对于每个活动,其最晚开始时间(LF)等于终点的最晚开始时间(LST)减去该活动的执行时间。
4. 计算每个活动的总时差(TF)和自由时差(FF)。
4.1 对于每个活动,其总时差(TF)等于终点的最晚开始时间(LST)减去起点的最早开始时间(EST)减去该活动的执行时间。
4.2 对于每个活动,其自由时差(FF)等于终点的最早开始时间(EF)减去起点的最早开始时间(EST)减去该活动的执行时间。
5. 找出所有关键路径,即总时差(TF)为0的所有活动路径。
6. 输出所有关键路径及其执行时间。
以上就是利用邻接表存储结构实现关键路径算法的步骤。
阅读全文