
图
有梦不难zj
这个作者很懒,什么都没留下…
展开
-
弗洛伊德算法
1.说明 和迪杰斯特拉算法不同,floyd算法解决的是图中所有顶点到其他顶点的最短距离,需要维护两个数组,一个记录前驱节点,一个记录最短距离。 2.代码 1.floyd算法 public class Graph { private char[] vertexes; // 存放顶点的一维数组 private int[][] pre; // 存放各个顶点的前驱顶点的矩阵,初始化是顶点本身 private int[][] dis; // 各个顶点到其余顶点的最短路径的矩阵原创 2020-08-12 22:08:01 · 217 阅读 · 0 评论 -
迪杰斯特拉算法
1.顶点状态 import java.util.Arrays; public class visitVertex { /*-------------成员变量------------*/ static int Max = Integer.MAX_VALUE; // 记录顶点是否被访问,0:未被访问过,1:已被访问 public int[] isNo_Visited; // 记录前一个顶点的索引 public int[] pre_vertex; //原创 2020-08-09 13:47:00 · 132 阅读 · 0 评论 -
Kruskal算法实现
1.主要思想 和Prim算法不同,克鲁斯卡尔算法是依次遍历图中的边,按照边的权值进行构造最小生成树,关键是要判断每次加入的边和已经加入的边是否构成回路(这是关键),最后生成了一个有(vertex-1)条边的最小生成树。 2.代码实现 1.克鲁斯卡尔类 package KruskalAlgothm; import javax.swing.*; import java.util.Arrays; public class Kruskal { // 成员变量 private int edge原创 2020-08-09 13:38:49 · 311 阅读 · 0 评论 -
Prim算法实现
1.主要思想 Prim算法,从图的某一个顶点开始,找到权值最小的顶点,依次遍历,最后生成一个最小生成树 2.图示  3.代码实现 1.图 package prim; public class Graph { int vertex; // 顶点的个数 char[] value; // 顶点的值 int[][] weight;// 图的邻接矩阵原创 2020-08-09 13:35:24 · 412 阅读 · 1 评论 -
图的深度优先和广度优先遍历算法
1.说明 图的广度优先算法,需要一个队列来记录节点的访问顺序 2.代码实现 1.图 package Graph; import java.util.ArrayList; import java.util.Arrays; import java.util.LinkedList; public class Graph { private ArrayList<String> VertexList; // 顶点的集合 private int[][] Edges_Relation;原创 2020-08-08 10:19:37 · 266 阅读 · 0 评论