<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算法】
    主站蜘蛛池模板: 极品美女一级毛片免费| 国产99视频精品免费专区| 亚洲福利视频一区二区| 成人性做爰aaa片免费看| 色多多www视频在线观看免费| 亚洲黑人嫩小videos| 国产免费131美女视频| 永久免费bbbbbb视频| 特级毛片在线大全免费播放| 美女黄网站人色视频免费| 视频一区在线免费观看| 黄页网址在线免费观看| 亚洲精品视频免费观看| 十八禁视频在线观看免费无码无遮挡骂过 | 57pao国产成永久免费视频| 99久在线国内在线播放免费观看| 99国产精品视频免费观看| 777爽死你无码免费看一二区| 人与动性xxxxx免费| 黄色短视频免费看| 青青青国产手机频在线免费观看 | 三级毛片在线免费观看| 欧洲精品免费一区二区三区| 免费看小12萝裸体视频国产| 成人毛片免费观看视频在线| 国产福利在线观看永久免费| 久久久WWW免费人成精品| 最新久久免费视频| 国产成人久久AV免费| 无码精品A∨在线观看免费| 两性色午夜视频免费播放| 全免费a级毛片免费看| h视频在线免费看| baoyu116.永久免费视频| 久久久久久影院久久久久免费精品国产小说 | 亚洲日韩欧洲无码av夜夜摸| 亚洲av中文无码乱人伦在线r▽| 亚洲系列国产精品制服丝袜第| 亚洲一区精彩视频| 性感美女视频在线观看免费精品| 内射干少妇亚洲69XXX|