數(shù)據(jù)結(jié)構(gòu)(Java語(yǔ)言描述)(第2版)課件 5.5 最小生成樹(shù)_第1頁(yè)
數(shù)據(jù)結(jié)構(gòu)(Java語(yǔ)言描述)(第2版)課件 5.5 最小生成樹(shù)_第2頁(yè)
數(shù)據(jù)結(jié)構(gòu)(Java語(yǔ)言描述)(第2版)課件 5.5 最小生成樹(shù)_第3頁(yè)
數(shù)據(jù)結(jié)構(gòu)(Java語(yǔ)言描述)(第2版)課件 5.5 最小生成樹(shù)_第4頁(yè)
數(shù)據(jù)結(jié)構(gòu)(Java語(yǔ)言描述)(第2版)課件 5.5 最小生成樹(shù)_第5頁(yè)
已閱讀5頁(yè),還剩13頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

數(shù)據(jù)結(jié)構(gòu)主講人:楊丹常州信息職業(yè)技術(shù)學(xué)院5.5最小生成樹(shù)Part01最小生成樹(shù)概念如果連通圖G的一個(gè)子圖是一棵包含G的所有頂點(diǎn)的樹(shù),則該子圖稱(chēng)為G的生成樹(shù)。生成樹(shù)最小生成樹(shù)圖G及其兩棵生成樹(shù)如果無(wú)向連通圖是一個(gè)帶權(quán)圖,那么它的所有生成樹(shù)中必有一棵邊的權(quán)值總和最小的生成樹(shù),這棵生成樹(shù)稱(chēng)為最小代價(jià)生成樹(shù),簡(jiǎn)稱(chēng)最小生成樹(shù)。最小生成樹(shù)最小生成樹(shù)從最小生成樹(shù)的定義可知,構(gòu)造有n個(gè)頂點(diǎn)的無(wú)向連通帶權(quán)圖的最小生成樹(shù),必須滿足以下三個(gè)條件:(1)構(gòu)造的最小生成樹(shù)必須包括n個(gè)頂點(diǎn);(2)構(gòu)造的最小生成樹(shù)中有且僅有n-1條邊;(3)構(gòu)造的最小生成樹(shù)中不能存在回路。說(shuō)明Part02Prim算法Prim算法思想假設(shè)G=(V,E)是一個(gè)無(wú)向帶權(quán)圖,其中V是帶權(quán)圖中頂點(diǎn)的集合,E是邊的權(quán)值集合。設(shè)置兩個(gè)新的集合U和TE,其中U用來(lái)存放帶權(quán)圖G的最小生成樹(shù)的頂點(diǎn)集合,TE用來(lái)存放帶權(quán)圖G的最小生成樹(shù)邊的集合。132+初始化:U={u0},TE={Φ},u0是圖G中任意一個(gè)頂點(diǎn);+如果U=V,則算法結(jié)束,否則重復(fù)步驟2+在所有u∈U,v∈V-U中,找一條權(quán)值最小的邊(u,v),并將v加入集合U中,邊(u,v)加入集合TE中。Prim算法步驟【例】對(duì)下面的圖G,使用普里姆算法求最小生成樹(shù)T的執(zhí)行過(guò)程。圖GPrim算法步驟Prim算法步驟Prim算法實(shí)現(xiàn)10頂點(diǎn)定義算法實(shí)現(xiàn)測(cè)試代碼頂點(diǎn)定義利用Prim算法來(lái)構(gòu)造最小生成樹(shù),最終的生成樹(shù)由n個(gè)頂點(diǎn)以及n-1條邊組成。除了初始頂點(diǎn)外,由n-1次循環(huán)選取操作得到其余n-1個(gè)頂點(diǎn)和n-1條符合條件的邊,每次循環(huán)得到1個(gè)頂點(diǎn)和1條邊。Prim算法實(shí)現(xiàn)11頂點(diǎn)定義算法實(shí)現(xiàn)測(cè)試代碼算法實(shí)現(xiàn)lowCost數(shù)組,用來(lái)保存符合一個(gè)頂點(diǎn)在U,另外一個(gè)頂點(diǎn)在V-U中的邊的權(quán)值每次從lowCost數(shù)組中選取權(quán)值最小的邊修正lowCost中的值Prim算法實(shí)現(xiàn)12頂點(diǎn)定義算法實(shí)現(xiàn)測(cè)試代碼測(cè)試代碼Part03Kruskal算法Kruskal算法思想假設(shè)G=(V,E)是一個(gè)無(wú)向帶權(quán)圖,其中V是帶權(quán)圖中頂點(diǎn)的集合,E是邊的權(quán)值集合。最小生成樹(shù)為T(mén)=(V,TE)。重復(fù)步驟(2)直到所有頂點(diǎn)都在同一連通分量上為止。邊長(zhǎng)遞增的順序選擇E中的邊(u,v)加入到T中,要求u、v分屬于T的兩個(gè)連通分量;若u、v是T的當(dāng)前同一個(gè)連通分量中的頂點(diǎn),則舍去此邊。初始化:T=(V,?)。也就是說(shuō),最小生成樹(shù)的初始狀態(tài)為只有n個(gè)頂點(diǎn)而無(wú)邊的非連通圖。Kruskal算法步驟【例】對(duì)下面的圖G,使用克魯斯卡爾算法求最小生成樹(shù)T

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論