Yen算法的算法原理可以参考:Yen算法
下面主要写一下Yen算法的完整代码
操作系统:Win 10
开发IDE:IntelliJ IDEA 2019
编程语言:Java
测试数据:
一、文件组成

二、图的定义
边结点定义
package GraphEntity;public class EdegeNode{ //边表结点类public int adjvex;//边指向的点public int value;//边权值public EdegeNode nextEdge;public EdegeNode() {}public EdegeNode(int adjvex,int value) //初始化边结点{this.adjvex=adjvex;this.value=value;this.nextEdge=null;}
}
顶点结点定义
package GraphEntity;public class Point{ //这个类用于邻接表,因为每一个顶点在邻接表中都存在一个指向其它顶点的指针域所以要将指针域和数据域封装成一个具体的类public int data;//该点idpublic EdegeNode firstArc;//该点第一条边public Point() {}public Point(int data){this.data=data;this.firstArc=null;}}
图整体定义
package GraphEntity;//图邻接表的表示法
public class MyGraph{public Point[] point;public int[] visted;public int numPoint;public int numEdeges;public MyGraph() {}public MyGraph(int numPoint,int numEdeges){this.numPoint=numPoint;this.numEdeges=numEdeges;point=new Point[numPoint]; //初始化点集数组visted=new int[numPoint];}public void createMyGraph(MyGraph MyGraph,int numPoint,int numEdeges,int EdegesPoint[][]) //创建图{for(int i=0;i
