<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é)備用
    主站蜘蛛池模板: 日韩免费人妻AV无码专区蜜桃| 亚洲国产精品无码久久久秋霞1| 一区二区视频免费观看| 大学生一级特黄的免费大片视频 | 中文字幕乱码免费看电影| 全亚洲最新黄色特级网站| 免费夜色污私人影院网站电影| 国产精品免费看久久久久 | 中文字幕版免费电影网站| 国产亚洲成人久久| 两性色午夜免费视频| 亚洲av永久无码精品表情包| 久久狠狠躁免费观看| 337p日本欧洲亚洲大胆精品555588| 亚洲视频在线免费观看| 亚洲videosbestsex日本| 国语成本人片免费av无码| 亚洲精品无码专区在线| 亚洲日本一区二区三区在线不卡| jizz日本免费| 久久精品亚洲一区二区三区浴池| av无码久久久久不卡免费网站| 亚洲国产AV无码一区二区三区| www.亚洲精品| 久久国产精品免费看| 亚洲精品国产首次亮相| 久久精品国产精品亚洲下载| 久久国产色AV免费看| 亚洲AV香蕉一区区二区三区| 国产精品亚洲视频| 久久国产免费福利永久| 亚洲av日韩精品久久久久久a| 亚洲中文字幕不卡无码| 亚洲无砖砖区免费| 免费无码一区二区| 亚洲色图视频在线观看| 亚洲国产91精品无码专区| 久久久久免费精品国产| 亚洲精品无码专区| 亚洲国产精品第一区二区| 成年女人毛片免费观看97|