


版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、實驗九 圖的最小生成樹算法的實現(xiàn)實驗預(yù)備知識:1 .理解圖最小生成樹的意義和相應(yīng)算法。2掌握帶權(quán)圖的存儲結(jié)構(gòu)。一、實驗?zāi)康?. 使學(xué)生熟悉最小生成樹的算法實現(xiàn)。2. 掌握帶權(quán)圖的存儲結(jié)構(gòu)和處理方法。二、實驗環(huán)境1. 硬件:每個學(xué)生需配備計算機(jī)一臺。操作系統(tǒng):DOS或Windows2. 軟件:DOS或 Windows操作系統(tǒng) +Turbo C三、實驗要求1. 能夠獨(dú)立完成帶權(quán)圖的存儲和最小生成樹的生成四、實驗內(nèi)容1. 在自己的U盤的“姓名+學(xué)號”文件夾中創(chuàng)建“實驗9”文件夾,本 次實驗的所有程序和數(shù)據(jù)都要求存儲到本文件夾中。2. 現(xiàn)在某電信公司要對如下圖的幾個城市之間進(jìn)行光纖連接布線,請 用合適
2、的存儲結(jié)構(gòu)將下圖存儲到計算機(jī)中方便進(jìn)行處理。3. 現(xiàn)在公司想以最小的代價將所有城市連通,方便所有城市間通信,請用 普里姆算法和克魯斯卡爾算法實現(xiàn)本圖的最小生成樹#include <stdio.h> #include <stdlib.h> #define INF 50typedef struct ArcNodeint adjvex;struct ArcNode *nextarc; int weight;ArcNode;typedef struct VNodechar data;ArcNode *firstarc; VNode,AdjList6;typedef struct
3、AdjList LH; int vexnum; int arcnum;Graph;typedef structchar nextvex; int lowcost; int know;Auxiliary_array;/ 該弧所指向的頂點位置/ 下一個臨接點/ 弧的權(quán)重/ 表結(jié)點/ 頂點信息/ 指向下一個結(jié)點/ 創(chuàng)建頭結(jié)點數(shù)組/ 圖的點的個數(shù)/ 圖的邊的個數(shù)/ 輔助數(shù)組結(jié)構(gòu)體void main (void)void buildtu (Graph*);void printgraph(Graph*);void prim( Graph *G, char u);char u;Graph UDG;Graph
4、 *G = &UDG;buildtu(G);printgraph(G); / 打印圖 printf(" 請輸入起始頂點: n"); while(getchar()!='n');u = getchar();prim(G ,u);void buildtu (Graph *G) / 建圖int search(Graph *G,char a);int i,n1,n2,w;char a,b;ArcNode *p, *q;printf(" 請輸入頂點個數(shù)和邊的條數(shù): n"); scanf("%d %d",&G-&g
5、t;vexnum,&G->arcnum);printf(" 請輸入頂點信息 n");for (i = 0; i < G->vexnum; +i) while (getchar()!='n'); scanf("%c",&G->LHi.data); G->LHi.firstarc = NULL;printf(" 請輸入有關(guān)系的結(jié)點和該邊的權(quán)重 :n"); for(i=0;i<G->arcnum;+i) while (getchar()!='n');
6、scanf("%c %c %d",&a,&b,&w); n1=search(G,a); n2=search(G,b);p=G->LHn1.firstarc; if(p = NULL)p=G->LHn1.firstarc=(ArcNode *) malloc (sizeof(ArcNode); elsewhile( p->nextarc !=NULL ) p=p->nextarc; p=p->nextarc=(ArcNode *) malloc (sizeof(ArcNode);q=G->LHn2.firstarc;
7、 if(q = NULL)q=G->LHn2.firstarc=(ArcNode *) malloc (sizeof(ArcNode); elsewhile( q->nextarc !=NULL )q=q->nextarc;q=q->nextarc=(ArcNode *) malloc (sizeof(ArcNode);p->adjvex=n2;p->weight=w;p->nextarc=NULL;q->adjvex=n1;q->weight=w;q->nextarc=NULL;int search (Graph *G,char a
8、) / 確定頂點 a 在頭結(jié)點數(shù)組中的位置 int i;for(i=0;i<G->vexnum;+i)if(G->LHi.data=a)return i;void printgraph(Graph *G)/ 打印圖int i;ArcNode *p;for (i=0 ; i < G->vexnum; +i)p=G->LHi.firstarc;printf("data:%c t",G->LHi.data);while(p!=NULL) printf("firstarc->adjvex=%d",p->adj
9、vex); p=p->nextarc;printf("n");void prim( Graph *G, char u)/ 用 prim 算法實現(xiàn)最小生成樹int search (Graph *G,char a);int minimize(Graph *G, Auxiliary_array);void printtable(Auxiliary_array);Auxiliary_array A6; / 創(chuàng)建輔助數(shù)組int i,j,seat;int location;ArcNode *p ;for (i = 0; i < G->vexnum; +i) Ai.ne
10、xtvex = '0'Ai.know = 0;Ai.lowcost = INF;location = search(G ,u);/ 確定 u 元素在頭結(jié)點數(shù)組中的位置 for (p=G->LHlocation.firstarc ; p != NULL; p=p->nextarc ) i = p->adjvex;Ai.nextvex = G->LHlocation.data;Ai.lowcost = p->weight; Ai.know = 0;Alocation.know = 1;Alocation.lowcost = 0;Alocation.ne
11、xtvex = '0'for(j=0;j<G->vexnum-1;+j)seat = minimize( G,A ); printf("select min: %dn", seat);Aseat.know = 1; p=G->LHseat.firstarc; for (p; p != NULL; p=p->nextarc) i=p->adjvex;if(Ai.know = 0 && p->weight < Ai.lowcost) Ai.nextvex = G->LHseat.data; Ai.l
12、owcost = p->weight;printtable(A); / 打印輔助數(shù)組中的信息for (j = 0; j < G->vexnum; +j)if (j != location)printf("%c<>%cn",Aj.nextvex,G->LHj.data);int minimize(Graph *G, Auxiliary_array A)/ 取出輔助數(shù)組中權(quán)值最小的頂點所在的位 置int i,place,num;num = INF;for (i = 0; i < G->vexnum; +i)if(Ai.know =
13、 0 && num >= Ai.lowcost)num = Ai.lowcost;place = i;return place;void printtable(Auxiliary_array A) / 打印輔助數(shù)組int i;for (i = 0; i < 6; i+) printf("modifier:%c lowcost:%d known:%dn", Ai.nextvex, Ai.lowcost, Ai.know);實驗總結(jié): 通過該實驗,我深刻明白到了自己對循環(huán)的能力不足,書寫代碼的邏輯性也不夠強(qiáng),相信在以后的學(xué)習(xí)中能加強(qiáng)這方面的學(xué)習(xí),爭取
14、在以后的學(xué)習(xí)中解決這兩個方面 的問題。渭輛入頂點亍數(shù)和訕的煤數(shù);渭軟人頂弋佬總*恫輛人有關(guān)展的幻人刊裟迪初釈蚩:b b &eelp d 5” o 3C 4 CL F 4W f 2fa c 5c d SL F £data:a firstarc->adjuex=1 Firstarc-iadjv#x=2firstarc>adju*x=3dta : b f irctairc_>ad juM-Of i r st arc->ad j vp 4Firs t 曰廠jsk-2d a t a:c firstarc->adjusx=Gfiratarc-Jadjvess
15、firstarc->adj ux= 5fir&tarc?Bdjuex=1 f irstarc>adjuM= 3data:dl fir5tarc->adjuex=Gfiratarc-Jadjves=5firstarc>adju#x=2dita : p f irEtBrc'>adjuM-1 f irstarc- >ad jve)c-2firstarc- >adj ux-5 data:f fir5tarc->adjuBX=2Firstarc->adj ueK=3Firstarc>adj u»x=>l 怙紈人起給頂人=select in: 2 select Binlokicost : Bknopn:1lDHCOEtknown: 1lOLlCOSt: 1knoun:1lDHCOEt:2knon: 1lcucost : 3knoun:1lQHC
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年青海省中考化學(xué)第一次模擬檢測試卷(解析版)
- 建筑掛靠公司合同
- 英語語法時態(tài)比較與應(yīng)用場景分析教案
- 列方程解應(yīng)用題復(fù)習(xí)
- 供應(yīng)鏈管理物流管理作業(yè)指導(dǎo)書
- 建房施工合同協(xié)議書
- 2025年黔東南駕??荚囏涍\(yùn)從業(yè)資格證模擬考試
- 垃圾運(yùn)輸合同合同
- 招聘信息收集表-人力資源
- 電力供應(yīng)與需求分析表
- 第九講:信息與大數(shù)據(jù)倫理問題-工程倫理
- 四年級美術(shù)素養(yǎng)附答案
- 2021年全國中學(xué)生天文奧林匹克競賽預(yù)賽試題及答案
- 四年級下冊音樂教案-2.2我們美麗的祖國 |接力版
- Quantum軟件培訓(xùn)手冊
- 走近人工智能
- 服裝市場營銷項目2服裝市場營銷環(huán)境分析課件
- 中國傳媒大學(xué)《當(dāng)代電視播音主持教程》課件
- 制造業(yè)信息化管理系統(tǒng)架構(gòu)規(guī)劃
- 《納米復(fù)合材料》第2章 納米復(fù)合材料概論
- 建設(shè)工程圍擋標(biāo)準(zhǔn)化管理圖集(2022年版)
評論
0/150
提交評論