最小生成树的Java实现.doc

最小生成树的Java实现.doc

ID:52314105

大小:28.00 KB

页数:4页

时间:2020-03-26

最小生成树的Java实现.doc_第1页
最小生成树的Java实现.doc_第2页
最小生成树的Java实现.doc_第3页
最小生成树的Java实现.doc_第4页
资源描述:

《最小生成树的Java实现.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、最小生成树的Java实现/*  *@input:一个有向无环带权图,表述为一个二维数组graph[n][n]  *@output:最小生成树tree[n-1][3],tree[i][0]及tree[i][1]为边之顶点,tree[i][2]为权  */  publicclassMiniSpanTreeTest  {  staticint[][]graph={  {1000,6,1,5,1000,1000},  {6,1000,5,1000,3,1000},  {1,5,1000,5,6,4},  {5,100

2、0,5,1000,1000,2},  {1000,3,6,1000,1000,6},  {1000,1000,4,2,6,1000},  };  staticintv=0;  staticint[][]tree;  publicstaticvoidmain(String[]args)  {  MiniSpanTreeminiSpanTree=newMiniSpanTree();  miniSpanTree.input(graph,v);  tree=miniSpanTree.getTree();  for(i

3、nti=0;i

  System.out.println("边:"+tree[i][0]+"-"+tree[i][1]+"权:"+tree[i][2]);  }  }  }  classMiniSpanTree  {  privateint[][]graph;  privateintv;  privateint[][]tree;  privateboolean[]s;  voidinput(int[][]graph,intv)  {  this.graph=graph;  this.v=v;  tree=

4、newint[graph.length-1][];  s=newboolean[graph.length];  for(booleani:s)i=false;  s[v]=true;  calculate();  }  voidcalculate()  {  for(inti=0;i

  int[][]edge={{0,0,1000,},};  for(intj=0;j<>  for(intk=0;s[j]==true&&k<>  if(s[k]==false&&graph[j][k]

5、]){

  edge[0][0]=j;  edge[0][1]=k;  edge[0][2]=graph[j][k];  }  }  }  tree[i]=edge[0];  s[tree[i][1]]=true;  }  }  int[][]getTree()  {  returntree;  }  }  结果如下:  边:0-2 权:1  边:2-5 权:4  边:5-3 权:2  边:2-1 权:5  边:1-4 权:3

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

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

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