![Kruskal算法的設(shè)計(jì)和C實(shí)現(xiàn)_第1頁(yè)](http://file4.renrendoc.com/view/e5e856bdde434706d4cb7c3074d815b9/e5e856bdde434706d4cb7c3074d815b91.gif)
![Kruskal算法的設(shè)計(jì)和C實(shí)現(xiàn)_第2頁(yè)](http://file4.renrendoc.com/view/e5e856bdde434706d4cb7c3074d815b9/e5e856bdde434706d4cb7c3074d815b92.gif)
![Kruskal算法的設(shè)計(jì)和C實(shí)現(xiàn)_第3頁(yè)](http://file4.renrendoc.com/view/e5e856bdde434706d4cb7c3074d815b9/e5e856bdde434706d4cb7c3074d815b93.gif)
![Kruskal算法的設(shè)計(jì)和C實(shí)現(xiàn)_第4頁(yè)](http://file4.renrendoc.com/view/e5e856bdde434706d4cb7c3074d815b9/e5e856bdde434706d4cb7c3074d815b94.gif)
![Kruskal算法的設(shè)計(jì)和C實(shí)現(xiàn)_第5頁(yè)](http://file4.renrendoc.com/view/e5e856bdde434706d4cb7c3074d815b9/e5e856bdde434706d4cb7c3074d815b95.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
實(shí)驗(yàn)三Kruskal算法的設(shè)計(jì)一、設(shè)計(jì)目的1.根據(jù)算法設(shè)計(jì)需要,掌握連通網(wǎng)的靈活表示方法;.掌握最小生成樹(shù)的Kruskal算法;.基本掌握貪心算法的一般設(shè)計(jì)方法;.進(jìn)一步掌握集合的表示與操作算法的應(yīng)用.二、設(shè)計(jì)內(nèi)容1.主要數(shù)據(jù)類(lèi)型與變量typedefstruct{intnum;inttag;}NODE;typedefstruct{intcost;intnode1;intnode2;}EDGE;NODEset[N];/*節(jié)點(diǎn)集*/EDGEes[N];/*邊集*/EDGEst[N];/*最小生成樹(shù)的邊集*/2.算法或程序模塊intFind(NODE*set,intelem)功能:在數(shù)組set中順序查找元素elem,使用帶壓縮規(guī)則的查找算法,返回所在子集的根節(jié)點(diǎn)索引.intUnion(NODE*set,intelem1,intelem2)功能:應(yīng)用Find算法首先找到elemi和elem2所在的子集,然后應(yīng)用帶加權(quán)規(guī)則的并運(yùn)算算法合并兩個(gè)子集.不成功時(shí),返回-1;否則,返回并集的根節(jié)點(diǎn)索引.intInsertSort(EDGE*dat,intn)功能:用插入分類(lèi)算法將連通圖的邊集按成本值的非降次序分類(lèi).intKruskal(EDGE*es,NODE*set,intlength,EDGE*st,intnum)功能:對(duì)有l(wèi)ength條權(quán)值大于0的邊,最小生成樹(shù)中有num條邊的連通圖,應(yīng)用Kruskal算法生成最小生成樹(shù),最小生成樹(shù)的邊存儲(chǔ)在數(shù)組st中.voidOutput(EDGE*st,intn)
功能:輸出最小生成樹(shù)的各條邊.三測(cè)試結(jié)果 、測(cè)試數(shù)據(jù)和結(jié)果1C:\llsers\wxz\Deslb:op\5hiyan?ese碁不相鄰則輸入T=4<—>6=205<—>6-55當(dāng)主it也山邊也山邊也山邊也勺也也力邊.■TL.11K. ;「:-「J. I.■.■-1■.1-1.■.1IT—.—-1.■.11.-■Ti.1C:\Users\wxz\Deslctop\5hiyan.ese權(quán)恒排序結(jié)果l升序》:10IE20 25 30 35 40 45 50 55最小權(quán)值邊和:nincost=185聶小樹(shù)的邊數(shù);5最小生成樹(shù)的為:1234512345樹(shù)的表示:set[01.rum=lset[11樹(shù)的表示:set[01.rum=lset[11.rum=2set[21=rmm=3se七[3]■riurn^4setL41.rum=5settS1.ru,m=6setL0Ktag=2set[1]-tag=0set[2J=ta?j=—6:st:七[3]-tagr-2set14J.tag=Zset[5J.tag=2測(cè)試數(shù)據(jù)和結(jié)果2回回IfC:\Users\wxz\Desktop\shiy3n.eie詩(shī)觸人結(jié)點(diǎn)彳沖羅人邊的權(quán)值,若不碗輸入-1邊:K—>2=15遠(yuǎn)K—>3=20遠(yuǎn)K—>4=7ffi;K—>5=-1迅2<—>3=-1陋:2<—>4=28迅:2<—>5=3遠(yuǎn)3<—>4=30遠(yuǎn)3<—>5=-1遠(yuǎn)4<—>5=8.附:程序模塊的源代碼#include<stdio.h>#include<conio.h>#defineN100intlength;typedefstruct{intnum;inttag;}NODE;typedefstruct{intcost;intnode1;intnode2;}EDGE;NODEset[N];/*節(jié)點(diǎn)集,n為連通網(wǎng)的節(jié)點(diǎn)數(shù)*/EDGEes[N];/*邊集,m為連通網(wǎng)的邊數(shù)*/EDGEst[N];/*最小生成樹(shù)的邊集*/intInsertSort(EDGE*dat,intn){inti,item,j,m,h;for(i=0;i<n;i++){item=dat[i].cost;m=dat[i].node1;h=dat[i].node2;if(i==0){j=0;dat[j].cost=item;}else{j=i-1;while((item<dat[j].cost)&&(j>=0)){dat[j+1].cost=dat[j].cost;dat[j+1].node1=dat[j].node1;dat[j+1].node2=dat[j].node2;j--;}
dat[j+1].cost=item;
dat[j+1].node1=m;
dat[j+1].node2=h;}}printf("權(quán)值排序結(jié)果(升序):\n");for(i=0;i<n;i++)printf("%4d",dat[i].cost);printf("\n\n");intFind(NODE*set,intelem){inti,j,k;i=elem;while(set[i].tag>=0){i=set[i].tag;}j=elem;while(j!=i){k=set[j].tag;set[j].tag=i;j=k;}returni;}intUnion(NODE*set,intelem1,intelem2){intm,n,sum;m=Find(set,elem1);n=Find(set,elem2);sum=set[m].tag+set[n].tag;if(set[m].tag>set[n].tag){set[n].tag=sum;set[m].tag=n;}else{set[m].tag=sum;set[n].tag=m;}}intQuquanzhi(EDGE*es,intn){inti,j=0,len;EDGEb[N];for(i=0;i<=n;i++){if(es[i].cost>0){b[j].cost=es[i].cost;b[j].node1=es[i].node1;b[j].node2=es[i].node2;j++;}}len=j;printf("\n");for(i=0;i<len;i++){es[i].cost=b[i].cost;es[i].node1=b[i].node1;es[i].node2=b[i].node2;}printf("\n");returnlen;intKruskal(EDGE*es,NODE*set,intlength,EDGE*st,intnum){inti,j,k=1,m,n,mincost=0;st[0].cost=es[0].cost;st[0].node1=es[0].node1;st[0].node2=es[0].node2;m=Find(set,st[0].node1);n=Find(set,st[0].node2);Union(set,m,n);mincost+=es[0].cost;for(i=1;i<length;i++)/*找其他邊*/{m=Find(set,es[i].node1);n=Find(set,es[i].node2);if(m!=n){Union(set,m,n);st[k].cost=es[i].cost;st[k].node1=es[i].node1;st[k].node2=es[i].node2;mincost+=es[i].cost;k++;}if(k==num)break;}printf("\n最小權(quán)值邊和:mincost=%d\n",mincost);printf("\n最小樹(shù)的邊數(shù):%d\n\n",k);returnk;}voidOutput(EDGE*st,intn){inti;printf("最小生成樹(shù)的為:\n\n");for(i=0;i<n;i++){printf("邊%4:%3dv-->%d=%d\n",i+1,st[i]?node1+1,st[i]?node2+1,st[i]?cost);}intmain()inti,j,k=0,L,temp,len;NODE*p,*q;textbackground(BLUE);textcolor(YELLOW);system("graftabl935");/*顯示中文必須的代碼*/clrscr();printf("請(qǐng)輸入結(jié)點(diǎn)個(gè)數(shù):”);scanf("%d",&length);for(i=0;i<length;i++){set[i].num=i;set[i].tag=-1;}printf("請(qǐng)輸入邊的權(quán)值,若不相鄰則輸入-1\n");for(i=0;i<length;i++){for(j=i+1;j<length;j++){ printf("邊:%dv-->%d=",i+1j+1);scanf("%d",&es[k].cost);es[k].node1=i;es[k].node2=j;k++;}}temp=k;L=Ququanzhi(es,temp);/*提出權(quán)值大于0的邊數(shù)*/InsertSort(
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 中國(guó)棉紡織機(jī)械行業(yè)發(fā)展監(jiān)測(cè)及投資戰(zhàn)略研究報(bào)告
- 云賬號(hào)租賃合同范本
- 2025年中國(guó)PBAT行業(yè)發(fā)展現(xiàn)狀、市場(chǎng)前景、投資方向分析報(bào)告智研咨詢(xún)
- 鄉(xiāng)村保潔合同范本
- 食品飲料代理居間合同樣本
- 勞務(wù)分包材料合同范本
- 醫(yī)院服務(wù)協(xié)議合同范本
- 會(huì)議室裝修合同終止
- 物化實(shí)驗(yàn)報(bào)告-液體飽和蒸氣壓的測(cè)定
- 2025年中國(guó)有刷直流電動(dòng)機(jī)市場(chǎng)供需現(xiàn)狀及投資戰(zhàn)略研究報(bào)告
- 2024-2025學(xué)年深圳市南山區(qū)六年級(jí)數(shù)學(xué)第一學(xué)期期末學(xué)業(yè)水平測(cè)試試題含解析
- 2024-2030年中國(guó)免疫細(xì)胞存儲(chǔ)行業(yè)市場(chǎng)發(fā)展分析及競(jìng)爭(zhēng)形勢(shì)與投資戰(zhàn)略研究報(bào)告
- 工貿(mào)行業(yè)企業(yè)安全生產(chǎn)標(biāo)準(zhǔn)化建設(shè)實(shí)施指南
- 機(jī)械基礎(chǔ)(少學(xué)時(shí))(第三版) 課件全套 第0-15章 緒論、帶傳動(dòng)-氣壓傳動(dòng)
- T-CACM 1560.6-2023 中醫(yī)養(yǎng)生保健服務(wù)(非醫(yī)療)技術(shù)操作規(guī)范穴位貼敷
- 07J912-1變配電所建筑構(gòu)造
- 鋰離子電池串并聯(lián)成組優(yōu)化研究
- 人教版小學(xué)數(shù)學(xué)一年級(jí)下冊(cè)第1-4單元教材分析
- JTS-215-2018碼頭結(jié)構(gòu)施工規(guī)范
- 大酒店風(fēng)險(xiǎn)分級(jí)管控和隱患排查治理雙體系文件
- 財(cái)務(wù)實(shí)習(xí)生合同
評(píng)論
0/150
提交評(píng)論