关键路径的java实现.doc

关键路径的java实现.doc

ID:34626036

大小:31.50 KB

页数:5页

时间:2019-03-08

关键路径的java实现.doc_第1页
关键路径的java实现.doc_第2页
关键路径的java实现.doc_第3页
关键路径的java实现.doc_第4页
关键路径的java实现.doc_第5页
资源描述:

《关键路径的java实现.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、关键路径的java实现/*  *@title:关键路径  *@input:有向带权图,图以邻接表形式表示,头结点只存储该顶点的度,后继结点存储顶点及权值  *@output:所有可能关键路径的并集path,path[i][0]及path[i][1]代表边的顶点,path[i][2]代表权值  */  importjava.util.*;  publicclassCriticalPathTest  {  publicstaticvoidmain(String[]args)  {  int[][]graph={{0,1

2、,6,2,4,3,5,},{1,4,1,},{1,4,1},{1,5,2,},  {2,6,9,7,7,},{1,7,4,},{1,8,2,},{2,8,4,},{2,},};  int[][]path;  CriticalPathcriticalPath=newCriticalPath();  criticalPath.input(graph);  path=criticalPath.getPath();  for(inti=0;i

  System.out.println("边:"+path[i][0]+"

3、-"+path[i][1]+"权:"+path[i][2]);  }  }  }  classCriticalPath  {  privateint[][]graph;  privateint[][]path;  intlen;  voidinput(int[][]graph)  {  this.graph=graph;  path=newint[graph.length-1][];  len=0;  calculate();  }  voidcalculate()  {  int[]ve=newint[graph

4、.length];//事件的最发生时间  Stackstack1=newStack();  Stackstack2=newStack();  inti,j,v;  for(intt:ve)t=0;  stack1.push(0);  while(stack1.empty()!=true){  v=(Integer)stack1.pop();  for(i=1;i  j=graph[v][i];  if((--graph[j][0])==0){  stack1.push(j);  }if(ve[v]+graph[v]

5、[i+1]>ve[j]){  ve[j]=ve[v]+graph[v][i+1];  }  }  stack2.push(v);  }  int[]vl=newint[graph.length];//事件的最迟生时间  for(i=0;i  vl[graph.length-1]=ve[graph.length-1];  while(stack2.empty()!=true){  v=(Integer)stack2.pop();  for(i=1;i  j=graph[v][i];  if(vl[j]-graph[v

6、][i+1]  vl[v]=vl[j]-graph[v][i+1];  }  }  }  for(v=0;v  for(i=1;i  j=graph[v][i];  if(ve[v]==(vl[j]-graph[v][i+1])){  int[][]p={{v,j,graph[v][i+1],},};  path[len++]=p[0];  }  }  }  }  int[][]getPath()  {  returnpath;  }  intgetLength()  {  re

7、turnlen;  }  }  结果如下:  边:0-1权:6  边:1-4权:1  边:4-6权:9  边:4-7权:7  边:6-8权:2  边:7-8权:4  易知关键路径有两条:  0-1-4-6-8及0-1-4-7-8

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。