<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)問題請與我聯(lián)系。

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

    圖中代權(quán)的最小樹的問題如下:


    如果N個(gè)城市之間(圖中的頂點(diǎn))要修公路(圖中的邊)以使所有的城市聯(lián)通,求怎樣修可以使得公路的總長最小?
    以上問題中的N個(gè)城市之間可以用圖中的頂點(diǎn)表示,公路可以圖中的邊表示,公路的長度用邊長表示,公路是雙向的。問題就轉(zhuǎn)換為在有N個(gè)頂點(diǎn)中的雙向代權(quán)圖中求得一個(gè)最小樹。這里的代權(quán)指的邊的長度,這與以前的不代權(quán)的最小樹生成算法有很大的區(qū)別。


    算法描述如下:


        任選一個(gè)節(jié)點(diǎn)開始,將該節(jié)點(diǎn)標(biāo)志為已訪問過的節(jié)點(diǎn)。也就是最小樹中的節(jié)點(diǎn)。并設(shè)置為當(dāng)前節(jié)點(diǎn)。
        1 尋找此訪問節(jié)點(diǎn)的所有的鄰接頂點(diǎn),將邊置入優(yōu)先隊(duì)列。鄰接頂點(diǎn)不考慮已標(biāo)志為訪問的節(jié)點(diǎn),因?yàn)樗言诮Y(jié)果中。
        2 重復(fù) 步驟1 直到?jīng)]有新的邊被發(fā)現(xiàn)。此時(shí)在所有發(fā)現(xiàn)的邊中找到最小的邊,將其終點(diǎn)頂點(diǎn)標(biāo)志為已訪問,放入最小樹中。并設(shè)置為當(dāng)前節(jié)點(diǎn)
        3 重復(fù) 步驟 1,2,直到邊的隊(duì)列中沒有多余的邊,算法結(jié)束。

        注意:這里的優(yōu)先級隊(duì)列是個(gè)修正過的優(yōu)先級隊(duì)列,每次向該隊(duì)列中加入一條新邊時(shí)后,會(huì)檢查是否有與新邊終點(diǎn)相同的第二條邊的存在,如果有,則刪除邊長較大的邊。因?yàn)槿绻嬖谶@樣的邊說明,有兩條從已訪問過節(jié)點(diǎn)到相同目標(biāo)節(jié)點(diǎn)的路徑存在,如果這樣的話只用保留最小的那條邊即可。

    這里的圖采用Graph 圖-鄰接矩陣法 表示。



    算法實(shí)際上是作如下操作:


        先準(zhǔn)備好一個(gè)優(yōu)先級隊(duì)列,里面以邊長為關(guān)鍵值存放邊,邊的起點(diǎn)表示已被訪問過的節(jié)點(diǎn),而邊的終點(diǎn)表示未訪問的節(jié)點(diǎn)。將某節(jié)點(diǎn)標(biāo)志為訪問過節(jié)點(diǎn)。開始算法。
        尋找該訪問過節(jié)點(diǎn)的所有邊,并記錄邊長,放入邊優(yōu)先級隊(duì)列中;
        找到所有從已訪問過的節(jié)點(diǎn)到未訪問節(jié)點(diǎn)的邊中的最小邊;
        將最小邊連接的頂點(diǎn)設(shè)置為訪問過,重復(fù)以上過程,直到所有節(jié)點(diǎn)都變成已訪問。

    主要的類如下:

        Edge:記載邊

        PriorityQ:修正后的優(yōu)先級隊(duì)列

        Vertex:頂點(diǎn)

        Gragh:圖

            Gragh.mstw():最小樹生成算法

            Gragh.main():提供簡單測試

    代碼如下:

     

    JAVA代碼

     

    posted on 2008-05-28 15:45 rogerfan 閱讀(415) 評論(0)  編輯  收藏 所屬分類: 【JAVA算法】
    主站蜘蛛池模板: 精品亚洲福利一区二区| 中文字幕精品亚洲无线码二区| 51视频精品全部免费最新| 国产成人精品无码免费看| 国产激情免费视频在线观看 | 色噜噜亚洲精品中文字幕| 午夜亚洲国产成人不卡在线| 国产一级淫片a视频免费观看| 香蕉视频在线观看免费国产婷婷| 国产精品视频永久免费播放| 在线观看免费人成视频色| 成年性午夜免费视频网站不卡| 夭天干天天做天天免费看| 日韩特黄特色大片免费视频| 国产片免费在线观看| 亚洲AⅤ永久无码精品AA| 亚洲高清偷拍一区二区三区| 在线a亚洲v天堂网2019无码| 亚洲精品无码成人片久久| 亚洲AV无码久久精品色欲| 91亚洲国产成人精品下载| 亚洲国产精品成人综合久久久| 亚洲AV无码专区在线亚| 99亚洲精品卡2卡三卡4卡2卡| 久久无码av亚洲精品色午夜| 日韩久久无码免费毛片软件 | 亚洲国产人成在线观看| 亚洲国产区男人本色在线观看| 亚洲欧洲无码AV不卡在线| 黄色免费网址在线观看| 久青草视频97国内免费影视| 免费福利在线视频| 亚洲毛片在线免费观看| 精品国产免费观看| 伊人婷婷综合缴情亚洲五月| 久久亚洲精品成人AV| 亚洲色大成WWW亚洲女子| 五级黄18以上免费看| 特级无码毛片免费视频尤物 | 精品久久久久久无码免费| 无码免费一区二区三区免费播放|