Warshall算法JAVA实现
Warshall算法JAVA实现
package graph; class Vertex { public char label; // ------------------------------------------------------------- public Vertex(char lab) // constructor { label = lab; } } // end class Vertex // // /** * 有向图 */ public class WarshallGraph { private final int MAX_VERTS = 5; private Vertex vertexList[]; // list of vertices private int adjMat[][]; // adjacency matrix private int nVerts; // current number of vertices private char sortedArray[]; // ------------------------------------------------------------- public WarshallGraph() // constructor { vertexList = new Vertex[MAX_VERTS]; // adjacency matrix adjMat = new int[MAX_VERTS][MAX_VERTS]; nVerts = 0; for (int j = 0; j < MAX_VERTS; j++) // set adjacency for (int k = 0; k < MAX_VERTS; k++) // matrix to 0 adjMat[j][k] = 0; } // end constructor // ------------------------------------------------------------- public void addVertex(char lab) { vertexList[nVerts++] = new Vertex(lab); } // ------------------------------------------------------------- public void addEdge(int start, int end) { adjMat[start][end] = 1; } // ------------------------------------------------------------- public void displayVertex(int v) { System.out.print(vertexList[v].label); } // ------------------------------------------------------------- public void warshall() { for (int y = 0; y < MAX_VERTS; y++) { //行 for (int x = 0; x < MAX_VERTS; x++) { //列 if(adjMat[y][x] == 1){ // y -> x for (int z = 0; z < MAX_VERTS; z++) { if(adjMat[z][y] == 1 && z != x){ //z -> y找到连接到 y 的节点 adjMat[z][x] = 1; //z -> x } } } } } } // end topo // ------------------------------------------------------------- public void printGraph(){ for (int i = 0; i < MAX_VERTS; i++) { for (int j = 0; j < MAX_VERTS; j++) { System.out.print(adjMat[i][j] + " "); } System.out.println(); } } // ------------------------------------------------------------ public static void main(String[] args) { WarshallGraph theGraph = new WarshallGraph(); theGraph.addVertex('A'); // 0 theGraph.addVertex('B'); // 1 theGraph.addVertex('C'); // 2 theGraph.addVertex('D'); // 3 theGraph.addVertex('E'); // 4 // theGraph.addVertex('F'); // 5 // theGraph.addVertex('G'); // 6 // theGraph.addVertex('H'); // 7 theGraph.addEdge(0, 2); // AD theGraph.addEdge(1, 0); // AE theGraph.addEdge(1, 4); // AE theGraph.addEdge(2, 3); // AE theGraph.addEdge(3, 4); // BE theGraph.addEdge(4, 2); // CF // theGraph.addEdge(3, 6); // DG // theGraph.addEdge(4, 6); // EG // theGraph.addEdge(5, 7); // FH // theGraph.addEdge(6, 7); // GH theGraph.warshall(); theGraph.printGraph(); } }
Warshall算法JAVA实现相关推荐
- Warshall算法(用法详解,并转换成代码的形式)
关于Warshall算法,我先通过离散数学中求传递闭包来解释他的使用规则. 一般的,给定一个矩阵A(行列相等),我们对其使用Warshall算法: //注,该矩阵上只有0或1两种元素,做加法时,1+1 ...
- 推特雪花算法 java实现
2019独角兽企业重金招聘Python工程师标准>>> package twiter.snowflake;/*** twitter的snowflake算法 -- java实现*/ p ...
- 基于Warshall算法的连通图及欧拉图判定方法
1736年欧拉解决了哥尼斯堡七桥问题.他在这一具体问题的基础上进一步研究,最终找到了一个简便的原则可以鉴别一个图(多重图)能否一笔画成. 本文中,笔者使用布尔矩阵来存储一个无向图,并结合集合论中&qu ...
- java dh算法_dh密钥交换算法java
dh密钥交换算法java 迪菲-赫尔曼密钥交换(Diffie–Hellman key exchange,简称"D–H") 是一种安全协议. 它可以让双方在完全没有对方任何预先信息的 ...
- C++floyd warshall算法求最短路径(附完整源码)
C++floyd warshall算法求最短路径 floyd warshall算法求最短路径的完整源码(定义,实现,main函数测试) floyd warshall算法求最短路径的完整源码(定义,实现 ...
- C语言用warshall算法求传递闭包transitive closure(附完整源码)
用warshall算法求传递闭包transitive closure warshall算法求传递闭包完整源码 warshall算法求传递闭包完整源码 #include <stdbool.h> ...
- 数据结构和算法(Java)-张晨光-专题视频课程
数据结构和算法(Java)-579人已学习 课程介绍 如果说各种编程语言是程序员的招式,那么数据结构和算法就相当于程序员的内功. 想写出精炼.优秀的代码,不通过不断的锤炼,是很难做到的 ...
- floyed java_Floyd算法java实现demo
Floyd算法java实现,如下: package a; /** * ┏┓ ┏┓+ + * ┏┛┻━━━┛┻┓ + + * ┃ ┃ * ┃ ━ ┃ ++ + + + * ████━████ ┃+ * ...
- 快速排序算法 java 实现
快速排序算法 java 实现 快速排序算法Java实现 白话经典算法系列之六 快速排序 快速搞定 各种排序算法的分析及java实现 算法概念 快速排序是C.R.A.Hoare于1962年提出的一种划分 ...
最新文章
- myeclipse部署项目后,debug模式启动,总是弹出Class.class文件
- 记一次使用快速幂与Miller-Rabin的大素数生成算法
- Windows 7硬盘安装方法大全
- Flask 扩展 Flask-Script
- feignclient注解使用_Spring Cloud Nacos的使用
- FCKEditor v2.6.3 最新版-ASP.NET 演示程序
- 地理探测器的学习与研究初探
- 多个app用同一个签名文件_运动设备和运动APP的合理搭配
- 多智能体强化学习入门Qmix
- 论文排版一步搞定之公式——(公式居中,编号居右)
- ITUNES更改备份保存路径(不放C盘,不占C盘)、C盘空间不够
- 中国齿科粘接剂行业发展趋势及前景动态预测报告2022-2027年
- 青岛大学计算机考研好考么,青岛大学考研难吗?一般要什么水平才可以进入?...
- 小程序后台持续定位功能
- 《工程测量学》考试复习总结
- 安装office2016后文档表格不能显示图标
- 2020高中计算机会考成绩查询,2020会考成绩查询网站入口 学业水评考试成绩查询方法...
- PLC是怎么工作和扫描的
- 跟海外大牌正面PK,中国品牌如何出圈?
- .ps1 is not digitally signed. The script will not execute on the system.
热门文章
- SEO优化收徒蜘蛛池是什么
- 基于android的共享车位app
- 使用three.js做一个网页的相册动画
- CentOS-7部署安装Zabbix 3.0
- id Software公司介绍
- linux内核zfs,Linus Torvalds回应用户抱怨:不建议使用 ZFS On Linux
- 一、剪辑行业概述与剪辑工具介绍
- 工资3000,靠“视频剪辑”月入40000:会赚钱的人,从不靠拼命!
- HTML语言中代表网页标题的标签是,html标题标记 在html中,标题标签一共有几级?
- 数据库系统头歌实验八 数据库完整性、安全设计