<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    waysun一路陽光

    不輕易服輸,不輕言放棄.--心是夢(mèng)的舞臺(tái),心有多大,舞臺(tái)有多大。踏踏實(shí)實(shí)做事,認(rèn)認(rèn)真真做人。

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 ::  :: 管理 ::
      167 隨筆 :: 1 文章 :: 64 評(píng)論 :: 0 Trackbacks

    來源:http://blog.chinaunix.net/u1/50399/showart_408864.html

    /*
     * @title:關(guān)鍵路徑
     * @input: 有向帶權(quán)圖,圖以鄰接表形式表示,頭結(jié)點(diǎn)只存儲(chǔ)該頂點(diǎn)的度,后繼結(jié)點(diǎn)存儲(chǔ)頂點(diǎn)及權(quán)值
     * @output: 所有可能關(guān)鍵路徑的并集path,path[i][0]及path[i][1]代表邊的頂點(diǎn),path[i][2]代表權(quán)值
     */

    import java.util.*;
    public class CriticalPathTest
    {  
       public static void main(String[] args)
       {
           int[][] graph={{0, 1,6, 2,4, 3,5,},{1, 4,1,},{1, 4,1},{1, 5,2,},
           {2, 6,9, 7,7,},{1, 7,4,},{1, 8,2,},{2, 8,4,},{2,},};
           int[][] path;

           CriticalPath criticalPath=new CriticalPath();
           criticalPath.input(graph);
           path=criticalPath.getPath();
           for(int i=0; i<criticalPath.getLength(); i++){
               System.out.println("邊:" + path[i][0]+ "-" + path[i][1] +" 權(quán):"+ path[i][2]);
           }
       }
    }

    class CriticalPath
    {
        private int[][] graph;
        private int[][] path;
        int len;
        
        void input(int[][] graph)
        {
            this.graph=graph;
            path=new int[graph.length-1][];
            len=0;
            calculate();
        }

        void calculate()
        {
            int[] ve=new int[graph.length];  //事件的最發(fā)生時(shí)間
            Stack stack1=new Stack();
            Stack stack2=new Stack();
            int i,j,v;
            for(int t : ve) t=0;
            stack1.push(0);
            while(stack1.empty()!=true){
                v=(Integer)stack1.pop();
                for(i=1; i<graph[v].length; i=i+2){
                    j=graph[v][i];
                    if((--graph[j][0])==0){
                        stack1.push(j);
                    }
                    if(ve[v]+graph[v][i+1]>ve[j]){
                        ve[j]=ve[v]+graph[v][i+1];
                    }
                }
                stack2.push(v);
            }

            int[] vl=new int[graph.length];  //事件的最遲生時(shí)間
            for(i=0; i<graph.length; i++) vl[i]=1000;
            vl[graph.length-1]=ve[graph.length-1];
            while(stack2.empty()!=true){
                v=(Integer)stack2.pop();
                for(i=1; i<graph[v].length; i=i+2){
                    j=graph[v][i];
                    if(vl[j]-graph[v][i+1]<vl[v]){
                        vl[v]=vl[j]-graph[v][i+1];
                    }
                }
            }

            for(v=0; v<graph.length-1; v++){ //求關(guān)鍵路徑的所有邊
                for(i=1; i<graph[v].length; i=i+2){
                    j=graph[v][i];
                    if(ve[v]==(vl[j]-graph[v][i+1])){
                        int[][] p={{v, j,graph[v][i+1],},};
                        path[len++]=p[0];
                    }
                }
            }
        }
        
        int[][] getPath()
        {
            return path;
        }
        
        int getLength()
        {
            return len;
        }
    }

    結(jié)果如下:

    邊:0-1 權(quán):6
    邊:1-4 權(quán):1
    邊:4-6 權(quán):9
    邊:4-7 權(quán):7
    邊:6-8 權(quán):2
    邊:7-8 權(quán):4

    易知關(guān)鍵路徑有兩條:

    0-1-4-6-8 及 0-1-4-7-8

    posted on 2009-04-15 22:22 weesun一米陽光 閱讀(547) 評(píng)論(0)  編輯  收藏 所屬分類: JAVA源碼總結(jié)備用
    主站蜘蛛池模板: 日韩精品无码免费视频| 免免费国产AAAAA片| 亚洲视频精品在线| 国产精品无码免费播放| 色爽黄1000部免费软件下载| 亚洲av无码潮喷在线观看| 性感美女视频免费网站午夜| 一区二区三区AV高清免费波多| 91亚洲一区二区在线观看不卡| 国产在线a不卡免费视频| 污污网站免费观看| 无人视频免费观看免费视频| 666精品国产精品亚洲| 亚洲国产精品成人久久蜜臀 | 黄页网站在线观看免费| 久久亚洲日韩看片无码| www国产亚洲精品久久久日本| 四虎国产成人永久精品免费| 三级片免费观看久久| 亚洲AV无码专区在线亚| 亚洲人精品午夜射精日韩| 妞干网在线免费视频| 99国产精品免费视频观看| 深夜福利在线免费观看| 亚洲国产日韩在线人成下载| 亚洲中久无码永久在线观看同| 最近中文字幕mv免费高清电影| 一级毛片在线观看免费| 无码日韩人妻AV一区免费l | 亚洲色大成网站WWW国产| 亚洲国产精品久久久久网站| 亚洲国产精品无码久久久久久曰| 最近中文字幕免费mv视频8| 4444www免费看| 国内永久免费crm系统z在线| 黄色a三级免费看| 亚洲第一综合天堂另类专| 亚洲乱码日产精品BD在线观看| 久久久无码精品亚洲日韩按摩| 久久综合亚洲色HEZYO国产| 国产v片免费播放|