




下載本文檔
版權(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)》課程實(shí)驗(yàn)報(bào)告(實(shí)驗(yàn)5——圖的存儲(chǔ)方式和應(yīng)用)學(xué)生姓名
學(xué)
號(hào)班
級(jí)
指導(dǎo)老師實(shí)驗(yàn)名稱(chēng)
實(shí)驗(yàn)成績(jī)實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)?zāi)康模焊鶕?jù)圖中頂點(diǎn)和邊的信息編制程序建立圖的鄰接矩陣。實(shí)驗(yàn)概述實(shí)
實(shí)驗(yàn)要求:(1)程序要有一定的通用性。(2)直接根據(jù)圖中每個(gè)結(jié)點(diǎn)與其他結(jié)點(diǎn)的關(guān)聯(lián)情況輸入相關(guān)信息,程序能自動(dòng)形成鄰接矩陣。實(shí)驗(yàn)基本原理:(1)為保證程序的通用性,適合各種圖,在建立圖的鄰接矩陣算法中增加兩個(gè)參數(shù)k1和k2。k1為0表示無(wú)向圖,否則為有向圖;k2為0表示邊上無(wú)權(quán),否則為邊上有權(quán)。(2)初始化鄰接矩陣時(shí),對(duì)角線元素設(shè)置為0。若圖的邊上有權(quán),則其他元素值設(shè)為∞;若邊上無(wú)權(quán),則設(shè)為0。程序代碼:/*實(shí)驗(yàn)4.1建立圖的鄰接矩陣*/#include<stdio.h>驗(yàn)內(nèi)容
#defineMaxVertexNum8#defineMaxEdgeNum20#defineMaxValue1000
/*定義圖的最大頂點(diǎn)數(shù)*//*定義圖的最大邊數(shù)*//*定義相當(dāng)于∞的常量值*/typedefintVertexType;/*定義頂點(diǎn)數(shù)據(jù)類(lèi)型VertexType為整型*/typedefVertexTypevexlist[MaxVertexNum];/*定義vexlist為存儲(chǔ)頂點(diǎn)信息的數(shù)組類(lèi)型*/typedefintadjmatrix[MaxVertexNum][MaxVertexNum];/*定義adjmatrix為存儲(chǔ)鄰接矩陣的數(shù)組類(lèi)型*/voidCreateMatrix(vexlistGV,adjmatrixGA,intn,inte,intk1,intk2);
/*建立圖的鄰接矩陣*/voidShowMatrix(vexlistGV,adjmatrixGA,intn);/*輸出圖的鄰接矩陣*/voidmain(){intn,e,k1,k2;vexlistgv;/*定義保存頂點(diǎn)信息的數(shù)組*/adjmatrixga;
/*定義保存鄰接矩陣的數(shù)組*//*輸入一個(gè)圖的頂點(diǎn)數(shù)和邊數(shù)*/printf("輸入待處理圖的頂點(diǎn)數(shù)和邊數(shù):");scanf("%d%d",&n,&e);/*輸入有無(wú)向選擇和有無(wú)權(quán)選擇*/printf("輸入有無(wú)向選擇和有無(wú)權(quán)選擇(0為無(wú),非0為有):");scanf("%d%d",&k1,&k2);CreateMatrix(gv,ga,n,e,k1,k2);/*建立圖的鄰接矩陣*/printf("\n圖的鄰接矩陣為:\n\n");ShowMatrix(gv,ga,n);
/*輸出圖的鄰接矩陣*/}/*輸入n個(gè)頂點(diǎn)和e條邊,建立圖的鄰接矩陣*/voidCreateMatrix(vexlistGV,adjmatrixGA,intn,inte,intk1,intk2){/*k1為0則無(wú)向,否則為有向;k2為0則無(wú)權(quán),否則為有權(quán)*/inti,j,k,w;/*建立頂點(diǎn)數(shù)組*/printf("輸入%d個(gè)頂點(diǎn)數(shù)據(jù):",n);for(i=0;i<n;i++)scanf("%d",&GV[i]);/*初始化圖的鄰接矩陣*/for(i=0;i<n;i++)for(j=0;j<n;j++){if(i==j)GA[i][j]=0;elseif(k2!=0)GA[i][j]=MaxValue;elseGA[i][j]=0;}if(k1==0&&k2==0)
/*建立無(wú)向無(wú)權(quán)圖*/{printf("輸入%d條無(wú)向無(wú)權(quán)邊的起點(diǎn)和終點(diǎn)序號(hào)!\n",e);for(k=1;k<=e;k++){scanf("%d%d",&i,&j);GA[i][j]=GA[j][i]=1;}}elseif(k1==0&&k2!=0)/*建立無(wú)向有權(quán)圖*/{printf("輸入%d條無(wú)向有權(quán)邊的起點(diǎn)和終點(diǎn)序號(hào)及權(quán)值!\n",e);for(k=1;k<=e;k++){scanf("%d%d%d",&i,&j,&w);GA[i][j]=GA[j][i]=w;}}elseif(k1!=0&&k2==0)/*建立有向無(wú)權(quán)圖*/{printf("輸入%d條有向無(wú)權(quán)邊的起點(diǎn)和終點(diǎn)序號(hào)!\n",e);for(k=1;k<=e;k++){scanf("%d%d",&i,&j);GA[i][j]=1;}}elseif(k1!=0&&k2!=0)/*建立有向有權(quán)圖*/{printf("輸入%d條有向有權(quán)邊的起點(diǎn)和終點(diǎn)序號(hào)及權(quán)值!\n",e);for(k=1;k<=e;k++){scanf("%d%d%d",&i,&j,&w);GA[i][j]=w;}}}/*輸出圖的鄰接矩陣*/voidShowMatrix(vexlistGV,adjmatrixGA,intn){inti,j;printf("
頂點(diǎn)");for(i=0;i<n;i++)printf("%6d",GV[i]);printf("\n");for(i=0;i<n;i++){printf("%6d",GV[i]);for(j=0;j<n;j++){if(GA[i][j]==MaxValue)printf("%6s","∞");elseprintf("%6d",GA[i][j]);}printf("\n");}}實(shí)驗(yàn)結(jié)果:測(cè)試用例1無(wú)向無(wú)權(quán)圖如下圖所示。程序運(yùn)行結(jié)果如下:測(cè)試用例2有向有權(quán)圖如下圖所示。程序運(yùn)行結(jié)果如下:(1)具有n個(gè)頂點(diǎn)的圖,其鄰接矩陣為
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年石英玻璃纖維布項(xiàng)目發(fā)展計(jì)劃
- 電子文檔格式轉(zhuǎn)換標(biāo)準(zhǔn)流程
- 加強(qiáng)需求預(yù)測(cè)提升響應(yīng)速度
- 關(guān)于開(kāi)展新員工培訓(xùn)的策劃書(shū)
- 自然資源保護(hù)與合理利用合作協(xié)議
- 移動(dòng)應(yīng)用開(kāi)發(fā)及維護(hù)服務(wù)合同
- 草房子小學(xué)生故事解讀
- 2025年稀土-鐵超磁致伸縮單晶材料合作協(xié)議書(shū)
- 惠州學(xué)校道路標(biāo)線施工方案
- IT服務(wù)行業(yè)云服務(wù)解決方案探討
- 福建省服務(wù)區(qū)標(biāo)準(zhǔn)化設(shè)計(jì)指南
- 銷(xiāo)售人員薪酬設(shè)計(jì)實(shí)例 薪酬制度設(shè)計(jì) 薪酬設(shè)計(jì)方案 設(shè)計(jì)案例全套
- 光伏電站生產(chǎn)準(zhǔn)備大綱全套
- 工業(yè)控制安全
- 媽祖重離子醫(yī)院硼中子俘獲治療系統(tǒng)環(huán)境影響報(bào)告
- 征地搬遷基本要求及工作技巧課件
- 部編版語(yǔ)文五年級(jí)下冊(cè) 課本解讀
- 海洋工程裝備制造職業(yè)發(fā)展研究報(bào)告
- 供應(yīng)商現(xiàn)場(chǎng)審核評(píng)估表
- 20XX年吉林省事業(yè)單位公開(kāi)招聘人員審核備案表
- 產(chǎn)科危重癥識(shí)別與處理及危重癥管理培訓(xùn)課件
評(píng)論
0/150
提交評(píng)論