单源最短路径(一)————松弛技术

来源:互联网 发布:win7 资源管理器 软件 编辑:程序博客网 时间:2024/04/30 16:48
  1. package om.eshore.sweetop.minpath;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. public abstract class Graphics{
  5.     protected List<Vertex> list=new ArrayList<Vertex>();
  6.     
  7.     public void initSingleSource(Vertex v){
  8.         for (Vertex u : list) {
  9.             u.setD(Integer.MAX_VALUE);
  10.             u.setParent(null);
  11.         }
  12.         v.setD(0);
  13.     }
  14.     
  15.     public void relax(Vertex u,Vertex v){
  16.         if(v.getD()>u.getD()+u.weight(v)){
  17.             v.setD(u.getD()+u.weight(v));
  18.             v.setParent(u);
  19.         }
  20.     }
  21.     
  22.     public void display(Vertex v){
  23.         boolean start=false;
  24.         for (Vertex u : list) {
  25.             if (u == v) {
  26.                 start = true;
  27.             }
  28.             if (start) {
  29.                 for (Vertex x : u.getV()) {
  30.                     if(x.getParent()==u){
  31.                         System.out.println(u+"-->"+x);
  32.                     }
  33.                 }
  34.             }
  35.         }
  36.     }
  37.     
  38.     
  39.     public abstract boolean minPath(Vertex v);
  40. }

原创粉丝点击