kruskal算法java_克鲁斯卡尔算法(Kruskal)的java实现
下面是我对软件工程教程里面的克鲁斯卡尔算法的实现,发现在网是很少有网友贴出,为了方便大家查询,所以贴出来了,还希望大家能多指点.
package Test;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Kruskal
{
private static int vex=0,arc=0;//vex,arc分别表示顶点数和边数
private static char [] Vex;
private static int [] Arc;
private Graphal [] g;
Kruskal()
{
try
{
System.out.println("请输入无向图的顶点个数:");
InputStreamReader oI0=new InputStreamReader(System.in);
BufferedReader oIn0=new BufferedReader(oI0);
String o0=oIn0.readLine();
vex=Integer.parseInt(o0);
System.out.println("请输入无向图的边数:");
InputStreamReader oI1=new InputStreamReader(System.in);
BufferedReader oIn1=new BufferedReader(oI1);
String o1=oIn1.readLine();
arc=Integer.parseInt(o1);
}
catch(IOException e1)
{
e1.printStackTrace();
}
g=new Graphal[arc];
for(int i=0;i
{
String oo1=null,oo2=null;
int ooa=0;
System.out.print("请输入顶点 ");
try
{
InputStreamReader oI=new InputStreamReader(System.in);
BufferedReader oIn=new BufferedReader(oI);
oo1=oIn.readLine();
}
catch(IOException e2)
{
e2.printStackTrace();
}
System.out.println("请输入与顶点 "+oo1+"有关系的顶点");
try
{
InputStreamReader oI=new InputStreamReader(System.in);
BufferedReader oIn=new BufferedReader(oI);
oo2=oIn.readLine();
}
catch(IOException e3)
{
e3.printStackTrace();
}
System.out.println("请输入顶点"+oo1+"->"+oo2+"的权值:");
try
{
InputStreamReader oI=new InputStreamReader(System.in);
BufferedReader oIn=new BufferedReader(oI);
String oa=oIn.readLine();
ooa=Integer.parseInt(oa);
}
catch(IOException e3)
{
e3.printStackTrace();
}
g=new Graphal(oo1,oo2,ooa); //把输入的数据填入数组g中
}
System.out.println("顶点1 -> 顶点1\t权值");
for(int i=0;i
{
System.out.println(g);
}
}
public static void main(String [] args)
{
new Kruskal();
}
}
class Graphal// implements Comparable
{
//此类用于存储无向图的各顶点关系,及权值
private String v1;
private String v2;
private int a;
public Graphal(String oo1, String oo2, int ooa)
{
this.v1=oo1;
this.v2=oo2;
this.a=ooa;
}
public String toString()
{
return(v1+" -> "+v2+"\t"+a);
}
}
kruskal算法java_克鲁斯卡尔算法(Kruskal)的java实现相关推荐
- 最小生成树(普利姆算法、克鲁斯卡尔算法)
给定一个带权的无向连通图,如何选取一棵生成树,使树上所有边上权的总和为最小,这叫最小生成树. 求最小生成树的算法 (1) 克鲁斯卡尔算法 图的存贮结构采用边集数组,且权值相等的边在数组中排列次序可以是 ...
- 普利姆算法和克鲁斯卡尔算法求解最小生成树
Q:最小生成树有什么用? A:譬如我要去五个城市旅游,每两个城市之间可能有路也可能没有,路的距离可能一样也可能不一样,随机从一个城市出发,我想要把每个城市走一遍,怎么样走过的路距离最短,比如我想从上海 ...
- 用c语言描述普里姆算法和克鲁斯卡尔算法,克鲁斯卡尔算法+普里姆算法 详解
克鲁斯卡尔算法: [1]克鲁斯卡尔算法 普里姆算法是以某顶点为起点,逐步找各顶点上最小权值的边来构建最小生成树. 克鲁斯卡尔算法是直接以边为目标去构建. 因为权值是在边上,直接去找最小权值的边来构建生 ...
- 【 数据结构 | C语言】Kruskal 算法(克鲁斯卡尔算法)
文章目录 Kruskal 算法介绍 图解说明 Kruskal 算法 C 语言 完整代码(复制粘贴可用) Kruskal 算法介绍 Kruskal算法,即克鲁斯卡尔算法 关于 Prim 算法,可查看博文 ...
- 【数据结构】图的应用(普利姆算法、克鲁斯卡尔算法、迪杰斯特拉算法、弗洛伊德算法、拓扑排序)
最小生成树 什么是最小生成树 是一棵树 - 无回路 - |V|个顶点一定有|V|-1条边 是生成树 - 包含全部顶点 - |V|-1条边全在图里 贪心算法 什么是"贪":每一步都要 ...
- 【算法】克鲁斯卡尔算法
1.概述 视频地址:克鲁斯卡尔算法 下面看一个场景和问题 某城市新增7个站 点(A,B,C,D,E,F,G),现在需要修路把7个站点连通 各个站点的距离用边线表示(权),比如A-B距离12公里 问:如 ...
- 十大算法之克鲁斯卡尔算法
克鲁斯卡尔算法介绍 克鲁斯卡尔(Kruskal)算法,是用来求加权连通图的最小生成树的算法. 基本思想:按照权值从小到大的顺序选择n-1条边,并保证这n-1条边不构成回路 具体做法:首先构造一个只含n ...
- 普利姆算法和克鲁斯卡尔算法解决最小生成树问题
什么是最小生成树? 最小生成树(Minimum Cost Spanning Tree),简称MST. 最小生成树要求图是连通图.连通图指图中任意两个顶点都有路径相通,通常指无向图.理论上如果图是有向. ...
- 数据结构与算法|最小生成树算法(普里姆算法、克鲁斯卡尔算法)
最小生成树算法 C语言代码部分来自小甲鱼的<数据结构与算法> 文章目录 最小生成树算法 一.普里姆(Prim)算法 1.C语言代码 2.算法思路 二.克鲁斯卡尔(Kruskal)算法 1. ...
最新文章
- 【点云论文速读】6D位姿估计
- TF-IDF算法百度附有代码 有解吧实现中文分词
- 视频导切台控制说明:RGBLink MiniPro初步测试
- 那些在一个公司死磕5-10年的人,最后都怎么样了...
- 如何用eclispe远程调试tomcat--转载
- php错误84015,编译PHP OCI8磨难记
- decide how to invest 15 million pound in the development cost?
- QT的QAxFactory类的使用
- 日期和时间 - Java处理日期和时间
- 简单的MFC画正弦曲线
- Mac文本操作实用技巧,快速提升你的工作效率!
- Traefik-kubernetes 初试
- 为什么说劝人报名IT培训班的人,不是坏就是蠢?
- linux设备驱动程序第10章,linux中秒字符设备驱动(宋宝华设备驱动开发详解第10章)...
- 金融创新推动资产管理公司发展
- [字节跳动]2018秋招算法题【持续更新中】
- 温州大学X袋鼠云:高等人才教育建设,如何做到“心中有数”
- FILE NAME(filename)文件名的理解
- 域名使用HTTPS的相关配置
- Python机器学习建模的标准流程(特征工程+建模调参+模型评估+全流程可视化)
热门文章
- html不用点击自动执行,页面自动执行(加载)js的几种方法
- python医学图像读取_对python读取CT医学图像的实例详解
- python三维数据转换成二维_5大Python可视化库到底选哪个好?一篇文章搞定从选库到教学...
- linux 清理内存的c函数,Linux C函数之内存配置函数
- 为什么parsefloat加出来还是字符串_Python 100天从新手到大师 | Day 7 字符串与数据结构...
- 又一位纯手工打造CPU的牛人,并且汇编语言实现类Unix系统,支持文件系统
- html 鼠标移动3d视图,HTML5 鼠标悬停3D平面摇晃动效
- c语言程序设计考试改革,C语言程序设计课程考试改革实施方案.pdf
- pythonkeras数据增强_Keras数据增强参数
- arrays中copyof复制两个数组_Python数组切片中的复制与否问题-list篇