下面是我对软件工程教程里面的克鲁斯卡尔算法的实现,发现在网是很少有网友贴出,为了方便大家查询,所以贴出来了,还希望大家能多指点.

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. 最小生成树(普利姆算法、克鲁斯卡尔算法)

    给定一个带权的无向连通图,如何选取一棵生成树,使树上所有边上权的总和为最小,这叫最小生成树. 求最小生成树的算法 (1) 克鲁斯卡尔算法 图的存贮结构采用边集数组,且权值相等的边在数组中排列次序可以是 ...

  2. 普利姆算法和克鲁斯卡尔算法求解最小生成树

    Q:最小生成树有什么用? A:譬如我要去五个城市旅游,每两个城市之间可能有路也可能没有,路的距离可能一样也可能不一样,随机从一个城市出发,我想要把每个城市走一遍,怎么样走过的路距离最短,比如我想从上海 ...

  3. 用c语言描述普里姆算法和克鲁斯卡尔算法,克鲁斯卡尔算法+普里姆算法 详解

    克鲁斯卡尔算法: [1]克鲁斯卡尔算法 普里姆算法是以某顶点为起点,逐步找各顶点上最小权值的边来构建最小生成树. 克鲁斯卡尔算法是直接以边为目标去构建. 因为权值是在边上,直接去找最小权值的边来构建生 ...

  4. 【 数据结构 | C语言】Kruskal 算法(克鲁斯卡尔算法)

    文章目录 Kruskal 算法介绍 图解说明 Kruskal 算法 C 语言 完整代码(复制粘贴可用) Kruskal 算法介绍 Kruskal算法,即克鲁斯卡尔算法 关于 Prim 算法,可查看博文 ...

  5. 【数据结构】图的应用(普利姆算法、克鲁斯卡尔算法、迪杰斯特拉算法、弗洛伊德算法、拓扑排序)

    最小生成树 什么是最小生成树 是一棵树 - 无回路 - |V|个顶点一定有|V|-1条边 是生成树 - 包含全部顶点 - |V|-1条边全在图里 贪心算法 什么是"贪":每一步都要 ...

  6. 【算法】克鲁斯卡尔算法

    1.概述 视频地址:克鲁斯卡尔算法 下面看一个场景和问题 某城市新增7个站 点(A,B,C,D,E,F,G),现在需要修路把7个站点连通 各个站点的距离用边线表示(权),比如A-B距离12公里 问:如 ...

  7. 十大算法之克鲁斯卡尔算法

    克鲁斯卡尔算法介绍 克鲁斯卡尔(Kruskal)算法,是用来求加权连通图的最小生成树的算法. 基本思想:按照权值从小到大的顺序选择n-1条边,并保证这n-1条边不构成回路 具体做法:首先构造一个只含n ...

  8. 普利姆算法和克鲁斯卡尔算法解决最小生成树问题

    什么是最小生成树? 最小生成树(Minimum Cost Spanning Tree),简称MST. 最小生成树要求图是连通图.连通图指图中任意两个顶点都有路径相通,通常指无向图.理论上如果图是有向. ...

  9. 数据结构与算法|最小生成树算法(普里姆算法、克鲁斯卡尔算法)

    最小生成树算法 C语言代码部分来自小甲鱼的<数据结构与算法> 文章目录 最小生成树算法 一.普里姆(Prim)算法 1.C语言代码 2.算法思路 二.克鲁斯卡尔(Kruskal)算法 1. ...

最新文章

  1. 【点云论文速读】6D位姿估计
  2. TF-IDF算法百度附有代码 有解吧实现中文分词
  3. 视频导切台控制说明:RGBLink MiniPro初步测试
  4. 那些在一个公司死磕5-10年的人,最后都怎么样了...
  5. 如何用eclispe远程调试tomcat--转载
  6. php错误84015,编译PHP OCI8磨难记
  7. decide how to invest 15 million pound in the development cost?
  8. QT的QAxFactory类的使用
  9. 日期和时间 - Java处理日期和时间
  10. 简单的MFC画正弦曲线
  11. Mac文本操作实用技巧,快速提升你的工作效率!
  12. Traefik-kubernetes 初试
  13. 为什么说劝人报名IT培训班的人,不是坏就是蠢?
  14. linux设备驱动程序第10章,linux中秒字符设备驱动(宋宝华设备驱动开发详解第10章)...
  15. 金融创新推动资产管理公司发展
  16. [字节跳动]2018秋招算法题【持续更新中】
  17. 温州大学X袋鼠云:高等人才教育建设,如何做到“心中有数”
  18. FILE NAME(filename)文件名的理解
  19. 域名使用HTTPS的相关配置
  20. Python机器学习建模的标准流程(特征工程+建模调参+模型评估+全流程可视化)

热门文章

  1. html不用点击自动执行,页面自动执行(加载)js的几种方法
  2. python医学图像读取_对python读取CT医学图像的实例详解
  3. python三维数据转换成二维_5大Python可视化库到底选哪个好?一篇文章搞定从选库到教学...
  4. linux 清理内存的c函数,Linux C函数之内存配置函数
  5. 为什么parsefloat加出来还是字符串_Python 100天从新手到大师 | Day 7 字符串与数据结构...
  6. 又一位纯手工打造CPU的牛人,并且汇编语言实现类Unix系统,支持文件系统
  7. html 鼠标移动3d视图,HTML5 鼠标悬停3D平面摇晃动效
  8. c语言程序设计考试改革,C语言程序设计课程考试改革实施方案.pdf
  9. pythonkeras数据增强_Keras数据增强参数
  10. arrays中copyof复制两个数组_Python数组切片中的复制与否问题-list篇