




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、黃岡師范學院提高型實驗報告實驗課題最小生成樹的Prim算法(實驗類型:口綜合性 設計性 應用性)實驗課程算法程序設計實驗時間2010年12月24日學生姓名周媛鑫專業(yè)班級計科0801學 號 200826140110實驗目的和要求根據(jù)算法設計需要,掌握連通網(wǎng)的靈活表示方法;掌握最小生成樹的Prim算法;熟練掌握貪心算法的設計方法;實驗條件硬件環(huán)境:實驗室電腦一臺軟件環(huán)境:winTC實驗原理分析最小生成樹的定義:假設一個單位要在n個辦公地點之間建立通信網(wǎng),則連通n個地點只需要n-1 條線路??梢杂眠B通的無向網(wǎng)來表示n個地點以及它們之間可能設置的通信線路, 其中網(wǎng)的頂點表示城市,邊表示兩地間的線路,賦
2、于邊的權(quán)值表示相應的代價。 對于n個頂點的連通網(wǎng)可以建立許多不同的生成樹,每一棵生成樹都可以表示一 個通信網(wǎng)。其中一棵使總的耗費最少,即邊的權(quán)值之和最小的生成樹,稱為最小 生成樹。構(gòu)造最小生成樹可以用多種算法。其中多數(shù)算法利用了最小生成樹的下面 一種簡稱為MST的性質(zhì):假設N=(V,E)是一個連通網(wǎng),U是頂點集V的一個非 空子集。若(u,v)是一條具有最小權(quán)值(代價)的邊,其中uU,veV-U,則必 存在一棵包含邊(u.v )的最小生成樹。普里姆(Prim)算法即是利用MST性質(zhì)構(gòu)造最小生成樹的算法。算法思想 如下:假設N=(V,E)和是連通網(wǎng),TE是N上最小生成樹中邊的集合。算法從U=u0(
3、u0 eV),TE=(開始,重復執(zhí)行下述操作:在所有ueU,veV-U的邊(u, v) eE 中找一條代價最小的邊(u0, v0)并入集合TE,同時v0并入。,直到U=V為止。 此時TE中必有n-1條邊,則T=(V,TE)為N的最小生成樹。實驗步驟數(shù)據(jù)結(jié)構(gòu)的設計:采用鄰接矩陣的存儲結(jié)構(gòu)來存儲無向帶權(quán)圖更利于實現(xiàn)及操作:鄰接矩陣的抽象數(shù)據(jù)結(jié)構(gòu)定義:#define INFINITYINT_MAX/最大值#defineMAX_ERTEX_NUM20/最大頂點數(shù)typedef enum DG,DN,UDG,UDNGraphKind;/有向圖,有向網(wǎng),無向網(wǎng),無向圖 typedef struct Arc
4、 Cell(VRType adj ; / VRType是頂點關系的類型。對無權(quán)圖用1和0表示相鄰否;InfoType * info;/該弧相關信息的指針ArcCell , AdjMatrix MAX_VERTEX_NUMMAX_VERTEX_NUM;Typedef struct (VertexType vexs MAX_VERTEX_NUM;頂點向量AdjMatrix arcs ; int vexnum , arcnum GraphKind kind ; Mgraph ;函數(shù)設計AdjMatrix arcs ; int vexnum , arcnum GraphKind kind ; Mgra
5、ph ;函數(shù)設計/鄰接矩陣圖的當前頂點數(shù)和弧數(shù)/圖的種類標志函數(shù)名稱函數(shù)原型功能描述main() int main(void) 系統(tǒng)調(diào)用主函數(shù)Huiru() void Huitu () 繪制無向圖GraphicVer() void GraphicVer(Graph *G) 輸出鄰接矩陣 prim() void prim(Graph *G) PRIM 算法演示實驗源代碼#include#include #include #include #include #define MaxVertexNum 50#define INF 32767typedef struct Graphic(char vex
6、sMaxVertexNum;int edgesMaxVertexNumMaxVertexNum;int v,e;Graph;char tmp10;void Huitu() /*無向圖的圖形生成*/(char buffer100;int graphdriver = DETECT, graphmode;int i,xbefore,ybefore;int x1,y1; char c;/*registerbgidriver(EGAVGA_driver);initgraph(&graphdriver, &graphmode, ); cleardevice();printf(input pot (300
7、x610,yv,&G-e);for(i=1;iv;i+)for(j=1;jv;j+)if(i=j) G-edgesij=0;else( G-edgesij=INF;for(k=1;ke;k+)printf(input %dth edge :,k);scanf(%d,%d,%d,&v1,&v2,&weight);G-edgesv1v2=G-edgesv2v1=weight;for(i=1;iv;i+)printf(n);for(j=1;jv;j+)printf(G-edgesij=INF)?8t:dt,G-edgesij); printf(n);system(pause);/*prim 算法生成
8、最小生成樹*/void prim(Graph *G)(int lowcostMaxVertexNum,closestMaxVertexNum;int i,j,k,min;for(i=2;iv;i+)/*n 個頂點,n-1 條邊 */(lowcosti=G-edges1i;closesti = 1;lowcost1=0;/*標志頂點1加入U集合*/for(i=2;iv;i+)/*形成 n-1 條邊的生成樹 */(min=INF; k=0;for(j=2;jv;j+)if(lowcostjmin)&(lowcostj!=0)(min=lowcostj; k=j;printf(%d,%d)%2dt,
9、closestk,k,min);lowcostk=0;/*頂點 k 加入 U*/for(j=2;jv;j+)/*修改由頂點k到其他頂點邊的權(quán)值*/if(G-edgeskjedgeskj;closestj=k;printf(n);void drawwapicture(int lowcost口,int closest口,int vex)( int i=0,x=0,datax=0;setviewport(150,140,630,310,1);cleardevice();setcolor(GREEN);rectangle(10,10,470,160);line(10,60,470,60);line(1
10、0,110,470,110);for(i=0;ivex;i+)(x=470-40*i;datax=470-20*i;line(x,10,x,160);if(vex-i)!=0)outtextxy(datax,35,(vex-i)0);vsprintf(tmp,d,&lowcostvex-i);outtextxy(datax,85,tmp);vsprintf(tmp,d,&closestvex-i);outtextxy(datax,135,tmp);elseouttextxy(datax,35,i0);outtextxy(datax,85,lowcost0);outtextxy(datax,13
11、5,closest0);getche();closegraph();/*prim 算法生成最小生成樹*/void primyanshi(Graph *G)( void drawwapicture(int *p,int*q,int k);int lowcostMaxVertexNum,closestMaxVertexNum;int i,j,k,min;cleardevice();for(i=2;iv;i+)/*n 個頂點,n-1 條邊 */( lowcosti=G-edges1i;/* 初始化 */closesti = 1; /*頂點未加入到最小生成樹中*/drawwapicture(lowco
12、st,closest,G-v);lowcost1=0;drawwapicture(lowcost,closest,G-v);for(i=2;iv;i+)/*形成 n-1 條邊的生成樹 */(min=INF; k=0;for(j=2;jv;j+)if(lowcostjv);cprintf(%d,%d)%2dt,closestk,k,min);lowcostk=0;/*頂點 k 加入 U*/drawwapicture(lowcost,closest,G-v);for(j=2;jv;j+)/*修改由頂點k到其他頂點邊的權(quán)值*/if(G-edgeskjedgeskj;closestj=k;drawwa
13、picture(lowcost,closest,G-v);printf(n);int main()(Graph *G=NULL;int flag=1;printf(/*/n);printf(/*Welcome to the world of IRIS*/n);printf(/*200826140110*/n);while(flag!=0)(printf(1:Build a Undigraph Net and output the adjMatrix.n);printf(2.Output the Mini_tree:n);printf(3.Display the procession of Mi
14、ni_tree with PRIM:n);printf(4.exit:n);scanf(%d,&flag);switch(flag)(printf(%d,flag);case 1:Huitu();GraphicVer(G);break;case 2:prim(G);break;case 3: primyanshi(G);break;default :printf(Thank you!n);system(pause);exit(0);printf(Thank you!n);system(pause); return 0;五.實驗結(jié)果分析1th edjE:: 2li edljg- 3th巳的日:
15、1th edjE:: 2li edljg- 3th巳的日: 4th edge : 5th edge : JobTTTte datajwst pirtare nos in the cotruters memory.md ue reed hnu it pneimoy and ulietJier it ha雪 the correct data.33廿95 Q TOC o 1-5 h z 0西7B33廿95 Q45C16?eit03S G 95ITie 1th search to FinA tie min Yig砒 in the locust is the (1339Singnud i)ic iawi
16、rstCil-c IcsEstCU =0Zarrect Hie 1 aucDst? uiili Ihe sim 1 ier is-tance Letueen 4th dot and othen dots I hat is not be ffiqned.e 的 花。 i idn you cutcPi me 7六.實驗小結(jié)通過此次實驗后我深刻地學習了最小生成樹的Prim算法,通過分析實驗目 的和實驗內(nèi)容;闡述不同方法的原理;分析不同方法的特點和區(qū)別以及時空復雜 度;分析和調(diào)試測試數(shù)據(jù)和相應的結(jié)果.明白了 Prim算法是設計思想:設圖G = (V, E),其生成樹的頂點集合為U。把v0放入隊;在所有ueu, vey-U的邊 (u,v) eE中找一條最小權(quán)值的邊,加入生成樹;把找到的邊的v加入U集合。 如果U集合已有n個元素,則結(jié)束,否則繼續(xù)執(zhí)行。Prim算法實現(xiàn):一方面 利用集合,設置一個數(shù)組set(i=0,1,.,n-1),初始值為0,代表對應
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 租賃店鋪的殘疾人士服務考核試卷
- 鑄造過程中的質(zhì)量管理方法創(chuàng)新與實踐案例分析考核試卷
- 銀礦市場動態(tài)監(jiān)測與投資決策分析考核試卷
- 過敏性休克病人急救護理
- 呼吸道疾病預防及措施
- 院前急救的常見護理技術
- 機場應急救援淺析課件
- 影像學呼吸系統(tǒng)概述
- 外科手部護理標準流程
- 感染控制管理規(guī)范實施框架
- 2025年高考英語全國二卷試題含答案
- 網(wǎng)絡服務器配置與管理(微課版) 教案 項目02 虛擬化技術和VMware-2
- 國家開放大學2025年《創(chuàng)業(yè)基礎》形考任務3答案
- SL631水利水電工程單元工程施工質(zhì)量驗收標準第1部分:土石方工程
- 江岸區(qū)2023-2024學年下學期期末七年級數(shù)學試卷(含答案)
- 《成本會計學(第10版)》課后參考答案 張敏
- LNG加氣站質(zhì)量管理手冊
- (正式版)HGT 22820-2024 化工安全儀表系統(tǒng)工程設計規(guī)范
- 企業(yè)運營與模擬競爭智慧樹知到期末考試答案2024年
- 提升員工質(zhì)量意識培訓課件
- 國家開放大學《流通概論》章節(jié)測試參考答案
評論
0/150
提交評論