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

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

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

    JAVA—咖啡館

    ——?dú)g迎訪問rogerfan的博客,常來《JAVA——咖啡館》坐坐,喝杯濃香的咖啡,彼此探討一下JAVA技術(shù),交流工作經(jīng)驗(yàn),分享JAVA帶來的快樂!本網(wǎng)站部分轉(zhuǎn)載文章,如果有版權(quán)問題請(qǐng)與我聯(lián)系。

    BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
      447 Posts :: 145 Stories :: 368 Comments :: 0 Trackbacks

    圖-傳遞閉包

    圖的傳遞閉包是指修正后的鄰接矩陣表示的圖。(見Graph 圖-鄰接矩陣法 )

    在多個(gè)頂點(diǎn)的有向圖中,每個(gè)頂點(diǎn)可以到按照方向到達(dá)一定的節(jié)點(diǎn),這叫圖的連通性。有種方法直接告訴我們,圖中的兩個(gè)節(jié)點(diǎn)是否可以聯(lián)通,這里說的是WarShall算法。

    WarShall的基本原理是,如果A可以到達(dá)B,且C可以到達(dá)A,則C可以到達(dá)B。通過對(duì)鄰接矩陣的修正可以做到這點(diǎn)。隨然這里舉例是將兩步可并成一步,但數(shù)學(xué)上可以證明這種修正可以達(dá)到任意步驟。

    下面是代碼:

     

     1class WarShall {
     2    private boolean[][] adjMat;
     3
     4    WarShall(int size) {
     5        adjMat = new boolean[size][size];
     6    }

     7
     8    void connect(int from, int to) {
     9        adjMat[from][to] = true;
    10    }

    11
    12    boolean isConnect(int from, int to) {
    13        return adjMat[from][to];
    14    }

    15
    16    void warshall() //warshall算法
    17        for(int y=0; y<adjMat.length; y++//查找每一行
    18            for(int x=0; x<adjMat.length; x++// 查找每個(gè)單元格
    19                if(adjMat[y][x])    //如果 y 可以到達(dá) x
    20                    for(int z=0; z<adjMat.length; z++)    //查找所有行的y列
    21                        //如果 z 可以到達(dá)y ,說明z 可以直接到達(dá)x
    22                        if(adjMat[z][y]) adjMat[z][x] = true;    
    23        
    24    }

    25
    26    boolean[][] getConnections() {
    27        return adjMat;
    28    }

    29
    30    public static void main(String[] args) {
    31        WarShall w = new WarShall(5);
    32        w.connect(0,2);
    33        w.connect(1,0);
    34        w.connect(1,4);
    35        w.connect(3,4);
    36        w.connect(4,2);
    37        for(boolean[] a: w.getConnections()) {
    38            for(boolean b: a) System.out.print(b + " ");
    39            System.out.println();
    40        }

    41        w.warshall();
    42        System.out.println("==================");
    43        for(boolean[] a: w.getConnections()) {
    44            for(boolean b: a) System.out.print(b + " ");
    45            System.out.println();
    46        }

    47
    48        assert w.isConnect(3,2);
    49    }

    50}
    posted on 2008-05-28 15:54 rogerfan 閱讀(942) 評(píng)論(0)  編輯  收藏 所屬分類: 【JAVA算法】
    主站蜘蛛池模板: 在线观看免费毛片| 国产成人精品日本亚洲语音| 免费亚洲视频在线观看| 嘿嘿嘿视频免费网站在线观看 | 青娱乐免费视频在线观看| a级毛片免费网站| 含羞草国产亚洲精品岁国产精品 | 国产无遮挡裸体免费视频在线观看 | 色偷偷亚洲女人天堂观看欧| 亚洲国产精品SSS在线观看AV| 免费一级黄色毛片| 成年人视频在线观看免费| 最近最好最新2019中文字幕免费| 一级人做人爰a全过程免费视频 | 成人片黄网站色大片免费| 在线免费观看你懂的| 九九精品成人免费国产片| 亚洲一级片免费看| 免费福利在线观看| 国产午夜亚洲精品不卡| 成人电影在线免费观看| 免费在线观看一区| 免费毛片毛片网址| 国产成人+综合亚洲+天堂| 亚洲爆乳大丰满无码专区| 亚洲国产成人无码AV在线| 中文字幕无码亚洲欧洲日韩| 亚洲av产在线精品亚洲第一站| 亚洲精品无码久久毛片波多野吉衣| 久久精品7亚洲午夜a| 亚洲av无码潮喷在线观看| 亚洲国产精品成人精品无码区| 亚洲va久久久噜噜噜久久天堂| 国产亚洲精品a在线观看app| 国产亚洲精品自在久久| 久久精品国产亚洲沈樵| 亚洲AV永久无码精品| 亚洲国产精品久久66| 亚洲精品美女久久久久9999| 亚洲不卡1卡2卡三卡2021麻豆| 亚洲综合伊人制服丝袜美腿|