1.将网拓扑排序
2.进行关键路径算法:采用动态规划的思想每次选择路程长的边作为结果更新dist[]数组。
算法实现:
//每次将顶点取出采用动态规划的思想依次求解每个点的最长距离
int keypath()
{
int front=0,sumnum;
while(true)
{
int cur=Queue[front];
if(front==nnum-1) return sumnum;
edge *head=next_edge[cur];
while(head!=NULL)
{
int curnum=head->to;
if(dist[curnum]<dist[cur]+head->cost)
dist[curnum]=dist[cur]+head->cost;
sumnum=dist[curnum];
head=head->next;
}
front++;
}
}