如下网络图,A表示活动节点,0表示经过计算节点总时差为0。此处省略时差计算方式。参考单代号网络图计算总时差
S表示栈结构,从起始节点O开始,O为虚拟节点,无工时属性,仅为方便计算关键路径。也就是说A,B,C均同时开始。与O节点开始时间一致。
理论上D,H节点不可能总时差为0此处只作为计算考虑。
[[]]表示存储关键路径的数组,因为关键路径有可能有多条。因此用二维数组表示。
从此图也可看出,关键路径应有4条。
如下为关键路径计算步骤:
STEP 1
S:[O]
[[]]
后继总时差0节点:O->A,B,C
[
[O]
[O]
[O]
]
S:[A,B,C]
STEP 2
S:[B,C]
A->O
[
[O,A]
[O]
[O]
]
A->D
S:[D,B,C]
STEP 3
S:[B,C]
D->A
[
[O,A,D]
[O]
[O]
]
D->H
S:[H,B,C]
STEP 4
S:[B,C]
H->D
[
[O,A,D,H]
[O]
[O]
]
H->NO_ZERO
[
[O]
[O]
]
S:[B,C]
STEP 5
S:[C]
B->O
[
[O,B]
[O]
]
B->F
S:[F,C]
STEP 6
S:[C]
F->B,C
[
[O,B,F]
[O]
]
F->I,J
[
[O,B,F]
[O,B,F]
[O]
]
S:[I,J,C]
STEP 7
S:[J,C]
I->F
[
[O,B,F,I]
[O,B,F]
[O]
]
I->L
S:[L,J,C]
STEP 8
S:[J,C]
L->I,J
[
[O,B,F,I,L]
[O,B,F]
[O]
]
L->M
S:[M,J,C]
STEP 9
S:[J,C]
M->L
[
[O,B,F,I,L,M]
[O,B,F]
[O]
]
M->END
S:[J,C]
STEP 10
S:[C]
J->F
[
[O,B,F,I,L,M]
[O,B,F,J]
[O]
]
J->L
S:[L,C]
STEP 11
S:[C]
L->I,L->J
[
[O,B,F,I,L,M]
[O,B,F,J,L]
[O]
]
L->M
S:[M,C]
STEP 12
S:[C]
M->L
[
[O,B,F,I,L,M]
[O,B,F,J,L,M]
[O]
]
M->END
STEP 13
S:[C]
C->O
[
[O,B,F,I,L,M]
[O,B,F,J,L,M]
[O,C]
]
C->F
S:[F]
STEP 14
S:[]
F->C
[
[O,B,F,I,L,M]
[O,B,F,J,L,M]
[O,C,F]
]
F->I,J
S:[I,J]
STEP 15
S:[J]
I->F
[
[O,B,F,I,L,M]
[O,B,F,J,L,M]
[O,C,F,I]
[O,C,F]
]
I->L
S:[L,J]
STEP 16
S:[J]
L->I,J
[
[O,B,F,I,L,M]
[O,B,F,J,L,M]
[O,C,F,I,L]
[O,C,F]
]
L->M
S:[M,J]
STEP 17
S:[J]
M->L
[
[O,B,F,I,L,M]
[O,B,F,J,L,M]
[O,C,F,I,L,M]
[O,C,F]
]
M->END
S:[J]
STEP 18
S:[]
J->F
[
[O,B,F,I,L,M]
[O,B,F,J,L,M]
[O,C,F,I,L,M]
[O,C,F,J]
]
J->L
S:[L]
STEP 19
S:[]
L->I,J
[
[O,B,F,I,L,M]
[O,B,F,J,L,M]
[O,C,F,I,L,M]
[O,C,F,J,L]
]
L->M
S:[M]
STEP 20
S:[]
M->L
[
[O,B,F,I,L,M]
[O,B,F,J,L,M]
[O,C,F,I,L,M]
[O,C,F,J,L,M]
]
M->END
S:[]
::END