- 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 发布