如图网上所有代码是这样写的:
但是这种只是找到关键活动然后输出了而已,问题是现在我要让电脑明白,有多少条关键路径,然后如下图输出:
当然测试不止这一条。
网上大多停在了前面
可以只提供思想,但是最好经过多种图的测试
使用DFS算法即回溯算法,遍历到终点退回然后每退回一个出栈一下,继续遍历,遍历到终点把栈里面的内容遍历输出一遍:
//k为起点,finall为终点的数组下标,vexList为存节点的数组,visited数组为记录节点是否为关键事件
public void DFS(int k){
int all=0;
int pd=0;
visited[k]=1;
lineNode p=new lineNode();
p=vexList[k].getNext();
visited[finall]=0;
if(k==finall) {
for (int i=0;i<stack2.size;i++) {
System.out.print(stack2.peekTravel(i).getName() + "->");
all+= stack2.peekTravel(i).getInfo();;
}
pd++;
}
while (p!=null){
if(visited[p.getAdjvex()]!=1){
stack2.push(p);
DFS(p.getAdjvex());
stack2.pop();
}
System.out.println();
p=p.getNext();
}
}