- packageom.eshore.sweetop.minpath;
- importjava.awt.Color;
- importjava.util.LinkedList;
- publicclassDagextendsGraphics{
- privateinttime=0;
- publicDag(Vertex...vs){
- for(Vertexv:vs){
- list.add(v);
- }
- }
- publicvoidsort(){
- LinkedList<Vertex>list=newLinkedList<Vertex>();
- for(Vertexu:this.list){
- u.setColor(Color.WHITE);
- //u.setParent(null);
- }
- time=0;
- for(Vertexu:this.list){
- if(u.getColor().equals(Color.WHITE)){
- DFSVist(u,list);
- }
- }
- this.list=list;
- }
- privatevoidDFSVist(Vertexu,LinkedList<Vertex>list){
- u.setColor(Color.GRAY);
- //time++;
- //u.setDepth(time);
- for(Vertexv:u.getV()){
- if(v.getColor().equals(Color.WHITE)){
- //v.setParent(u);
- DFSVist(v,list);
- }
- }
- u.setColor(Color.BLACK);
- list.add(0,u);
- //time++;
- //u.setF(time);
- }
- publicbooleanminPath(Vertexv){
- sort();
- initSingleSource(v);
- booleanstart=false;
- for(Vertexu:list){
- if(u==v){
- start=true;
- }
- if(start){
- for(Vertexx:u.getV()){
- relax(u,x);
- }
- }
- }
- returntrue;
- }
- }
单源最短路径(三)————Dag实现
最新推荐文章于 2023-08-24 11:55:52 发布
本文介绍了一种基于有向无环图(DAG)的最短路径算法实现,该算法首先进行拓扑排序,然后从指定起点计算到图中所有其他顶点的最短路径。代码使用了Java语言,并借助了LinkedList数据结构来存储顶点。
425

被折叠的 条评论
为什么被折叠?



