下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、package com.jungoo.chapter8;import java.util.ArrayList;import java.util.List;/* * 输入一个带权的连通无向图 生成该图的最小生成树 该类实现Kruskal算法 该算法以边为主 适用于边多点少的图形中 * * author administrator */public class Kruskal /* * 代表字符的数字 A-0, B-1, C-2, D-3 ,E-4 */ 当两个顶点没有连线的时候将其权值设为MOUSTMAXprivate static final int MOUSTMAX = 1000;/ 保存点
2、集的第一个集合private static List<String> START = new ArrayList<String>();/ 保存点集的第二个集合private static List<String> END = new ArrayList<String>();/* * param array * 带权值的二维数组 */public static void sort(int array) int min = array00;/ 找到当前二维数组中最小的值for (int i = 0; i < array.length; i+)
3、for (int j = 0; j < array.length; j+) if (arrayij <= min) min = arrayij;/ 定义两个变量存储相应坐标,二维数组中有array00所以如下定义int varx = Integer.MAX_VALUE;int vary = Integer.MAX_VALUE;/ 将最小处的值改变for (int i = 0; i < array.length; i+) for (int j = 0; j < array.length; j+) if (arrayij = min) arrayij = MOUSTMAX;
4、varx = i;vary = j;break;/ 将数字转化成字符String charx = Kruskal.tochar(varx);String chary = Kruskal.tochar(vary);/ 判断是否有环路List<String> laststring = Kruskal.dest(charx, chary);for (String i : laststring) System.out.print(i + " ");/* * 判断是否构成回路 * param charx * X坐标 * param chary * Y坐标 * return
5、 List * String */public static List<String> dest(String charx, String chary) List<String> last = new ArrayList<String>();/ 初始点集为空时if (END.size() = 0) last.add(charx + chary);END.add(charx);END.add(chary); else / 边的坐标并不全在两个点集中的任何一个点集中,如果在任何一个点集就会构成回路if (!(END.contains(charx) &&a
6、mp; END.contains(chary) | START.contains(charx)&& START.contains(chary) / 如果 某点在一个点集中,另一个点在另一个点集中if (END.contains(charx) && START.contains(chary) last.add(charx + chary);/ 构成新的点集for (String char1 : START) if (!END.contains(char1) END.add(char1);START.clear();else if (START.contains(c
7、harx) && END.contains(chary) last.add(charx + chary);for (String char1 : START) if (!END.contains(char1) END.add(char1);/ 如果两点都不在某点集中,那么添加另外一个集合保存新的点集,把这个新的节点保存才START链表中else if (!END.contains(charx) && !END.contains(chary) last.add(charx + chary);if (!START.contains(charx) &&
8、 !START.contains(chary) START.add(charx);START.add(chary);if (START.contains(charx) && !START.contains(chary) START.add(chary);if (!START.contains(charx) && START.contains(chary) START.add(charx);return last;/* * * param var * 代表字符的数字 * return 返回该字符 */public static String tochar(int
9、var) String char1 = ""switch (var) case 0:char1 = "A"break;case 1:char1 = "B"break;case 2:char1 = "C"break;case 3:char1 = "D"break;case 4:char1 = "E"break;return char1;/* * 程序的入口 * * param args */public static void main(String args) / 声明一个二
10、维数组保存边的权值int array = new int55;/ 给二维数组全部赋值for (int i = 0; i < array.length; i+) for (int j = 0; j < array.length; j+) arrayij = MOUSTMAX;/ 输入边的权值array02 = 200;/ AC权值为200array03 = 80;/ AD权值为80array04 = 50;/ AE权值为50array12 = 70;/ BC权值为70array13 = 75;/ BD权值为75array14 = 300;/ BE权值为300array23 = 60;/ CD权值为60array34 = 90;/ DE权值为90/ 边的条数int count = 0;for (int i = 0; i < array.length; i+) for (int j = 0; j < array.length; j+) if(j=array.le
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026届福建省夏门市金鸡亭中学初三质量检测试题(二)物理试题含解析
- 2026年江苏省苏州市星湾中学普通中考第一次模拟考试物理试题理试题含解析
- 2026年大学大一(口腔医学)口腔临床技能基础测试题及答案
- 2026年大学大一(计算机应用技术)办公自动化高级应用阶段测试试题及答案
- 常见症状护理评估与干预
- 护理诊断的急诊护理
- 患者安全与个体化护理措施
- 护理健康教育中的健康教育可持续发展
- 护理伦理与医疗创新的关系
- 2026年医疗废物管理员题库
- 培训老师美术上课流程
- 热力公司供热培训课件
- 2024常州市高级职业技术学校工作人员招聘考试试题及答案
- UI设计用户体验实战案例
- DB41∕T 2230-2022 全自动水文缆道远程测流规程
- 2026年浙江安防职业技术学院单招职业技能测试题库必考题
- DB23∕T 2849-2021 公共视频监控系统监控杆体施工规范
- 2026 年广西普通高等教育专升本考试(含高职升本)新大纲 22公共管理与服务大类 专业基础综合课合卷 第 1 套模拟考试试卷(含答案解析)
- 2025国考中国民用航空华东地区管理局面试试题及答案
- 2025-2030中国电子体温计行业市场全景调研及投资价值评估咨询报告
- 十年(2016-2025)高考英语真题分类汇编:专题19 完形填空记叙文(全国)(原卷版)
评论
0/150
提交评论