版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、信息工程學(xué)院數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報告設(shè)計(jì)題目 無向圖的深度優(yōu)先遍歷操作 專 業(yè) 班 級 小 組 成 員 一、 題目:無向圖的深度優(yōu)先遍歷操作二、 小組任務(wù)分工共同編寫三、設(shè)計(jì)目標(biāo)幫助學(xué)生熟練掌握圖的遍歷循環(huán)。四、 問題描述為了實(shí)現(xiàn)圖的深度優(yōu)先遍歷操作五、 概要設(shè)計(jì)void createGraph(int (*edge)VERTEXNUM,int start, int end);/創(chuàng)建圖函數(shù)void displayGraph(int (*edge)VERTEXNUM);void DFT(int (*edge)VERTEXNUM,int* vertexStartusArr);/圖的深度優(yōu)先遍歷函數(shù)vo
2、id DFTcore(int (*edge)VERTEXNUM,int i,int* vertexStatusArr);六、 詳細(xì)設(shè)計(jì)(程序代碼及核心代碼流程圖)#include"stdio.h"#include"malloc.h"#define VERTEXNUM 5/函數(shù)聲明void createGraph(int (*edge)VERTEXNUM,int start, int end);void displayGraph(int (*edge)VERTEXNUM);void DFS(int (*edge)VERTEXNUM,int* vertexS
3、tartusArr);void DFScore(int (*edge)VERTEXNUM,int i,int* vertexStatusArr);void createGraph(int (*edge)VERTEXNUM,int start,int end) /寫入數(shù)據(jù) 1 創(chuàng)建結(jié)點(diǎn)位置 存進(jìn)數(shù)組edgestartend = 1;void displayGraph(int (*edge)VERTEXNUM)/打印存儲的圖int i,j;for(i=0;i<VERTEXNUM;i+)for(j=0;j<VERTEXNUM;j+)printf(" %d",edgei
4、j);printf("n");/深度優(yōu)先遍歷void DFS(int (*edge)VERTEXNUM,int* vertexStatusArr)int i;printf("深度遍歷循環(huán)后的結(jié)果:n");for(i=0;i<VERTEXNUM;i+)DFScore(edge,i,vertexStatusArr);/調(diào)用printf("n");void DFScore(int (*edge)VERTEXNUM,int i,int* vertexStatusArr)/核心 int j;if(vertexStatusArri= 1)r
5、eturn; /返回到函數(shù)結(jié)束printf("%d",i);/打印數(shù)字vertexStatusArri = 1;for(j=0;j<VERTEXNUM;j+)if(edgeij = 1)DFScore(edge,j,vertexStatusArr);int main(void)/動態(tài)創(chuàng)建存放邊的二維數(shù)組int (*edge)VERTEXNUM =(int (*)VERTEXNUM)malloc(sizeof (int)*VERTEXNUM*VERTEXNUM);int i,j;for(i=0;i<VERTEXNUM;i+)/初始化矩陣for(j=0;j<V
6、ERTEXNUM;j+)edgeij=0;/存放頂點(diǎn)的遍歷狀態(tài),0:未遍歷,1:已遍歷int* vertexStatusArr =(int*)malloc(sizeof(int)*VERTEXNUM);for(i=0;i<VERTEXNUM;i+)vertexStatusArri = 0;printf("初始化后:n");displayGraph(edge);/打印存儲的圖createGraph(edge,0,3); /創(chuàng)建結(jié)點(diǎn)位置 存進(jìn)數(shù)組createGraph(edge,3,0);createGraph(edge,0,4);createGraph(edge,4,0
7、);createGraph(edge,3,1);createGraph(edge,1,3);createGraph(edge,3,2);createGraph(edge,2,3);createGraph(edge,4,1);createGraph(edge,1,4);printf("圖創(chuàng)建后的矩陣:n");displayGraph(edge);DFS(edge,vertexStatusArr);/深度優(yōu)先遍歷free(edge);return 0;七、 測試數(shù)據(jù)測試內(nèi)容測試結(jié)果輸出圖的深度遍歷正確八、課程設(shè)計(jì)總結(jié) 通過此次課程設(shè)計(jì),令我們感觸頗深,首先,借助雙重for循環(huán)初
8、始化圖所對應(yīng)的矩陣,然后,借助調(diào)用函數(shù)一次將圖所對應(yīng)的矩陣表示并打印出來,然后,將深度優(yōu)先遍歷的結(jié)果打印輸出,在此次設(shè)計(jì)過程中,遇到了相當(dāng)數(shù)量的問題,首先,對于知識不能夠靈活應(yīng)用,為此,使得此次課程設(shè)計(jì)的難度加大,但也正因?yàn)槿绱耍刮覀兡軌蛟谧灾鲗W(xué)習(xí)(課程設(shè)計(jì)的完成)的過程中將知識點(diǎn)完全理解、吃透。 #include"stdio.h"#include"malloc.h"#define VERTEXNUM 5/函數(shù)聲明void createGraph(int (*edge)VERTEXNUM,int start, int end);void display
9、Graph(int (*edge)VERTEXNUM);void DFS(int (*edge)VERTEXNUM,int* vertexStartusArr);void DFScore(int (*edge)VERTEXNUM,int i,int* vertexStatusArr);void createGraph(int (*edge)VERTEXNUM,int start,int end) /寫入數(shù)據(jù) 1 創(chuàng)建結(jié)點(diǎn)位置 存進(jìn)數(shù)組edgestartend = 1;void displayGraph(int (*edge)VERTEXNUM)/打印存儲的圖int i,j;for(i=0;i&
10、lt;VERTEXNUM;i+)for(j=0;j<VERTEXNUM;j+)printf(" %d",edgeij);printf("n");/深度優(yōu)先遍歷void DFS(int (*edge)VERTEXNUM,int* vertexStatusArr)int i;printf("深度遍歷循環(huán)后的結(jié)果:n");for(i=0;i<VERTEXNUM;i+)DFScore(edge,i,vertexStatusArr);/調(diào)用printf("n");void DFScore(int (*edge)V
11、ERTEXNUM,int i,int* vertexStatusArr)/核心 int j;if(vertexStatusArri= 1)return; /返回到函數(shù)結(jié)束printf("%d",i);/打印數(shù)字vertexStatusArri = 1;for(j=0;j<VERTEXNUM;j+)if(edgeij = 1)DFScore(edge,j,vertexStatusArr);int main(void)/動態(tài)創(chuàng)建存放邊的二維數(shù)組int (*edge)VERTEXNUM =(int (*)VERTEXNUM)malloc(sizeof (int)*VERTE
12、XNUM*VERTEXNUM);int i,j;for(i=0;i<VERTEXNUM;i+)/初始化矩陣for(j=0;j<VERTEXNUM;j+)edgeij=0;/存放頂點(diǎn)的遍歷狀態(tài),0:未遍歷,1:已遍歷int* vertexStatusArr =(int*)malloc(sizeof(int)*VERTEXNUM);for(i=0;i<VERTEXNUM;i+)vertexStatusArri = 0;printf("初始化后:n");displayGraph(edge);/打印存儲的圖createGraph(edge,0,3); /創(chuàng)建結(jié)點(diǎn)位置 存進(jìn)數(shù)組createGraph(edge,3,0);createGraph(edge,0,4);createGraph(edge,4,0);createGraph(edge,3,1);createGraph(edge,
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度廚師職業(yè)發(fā)展規(guī)劃與勞務(wù)聘用協(xié)議3篇
- 2025年度文化創(chuàng)意產(chǎn)業(yè)園區(qū)租賃合同3篇
- 2024年高科技企業(yè)質(zhì)押擔(dān)保及反擔(dān)保合同范本3篇
- 2024年版甲乙雙方公司房屋出租協(xié)議書
- 2024年臍橙種植基地病蟲害防治與農(nóng)藥使用合同3篇
- 2024年訂婚協(xié)議規(guī)范化文本版
- 2024年酒店管理承包協(xié)議樣本版B版
- 2024年貨物買賣合同示范文本
- 2024簽合同附加協(xié)議書:科技研發(fā)合作項(xiàng)目3篇
- 2025年度新能源電池采購合同約定3篇
- 大班科學(xué)公開課教案及教學(xué)反思《小小測量員》
- TOEFL閱讀100篇附答案
- 輸電線路鐵塔基礎(chǔ)強(qiáng)度加固方案
- 共同富裕思想發(fā)展與精神生活共同富裕
- 鄉(xiāng)村旅游創(chuàng)意景觀的設(shè)計(jì)
- 譯林版一年級英語上冊全套ppt
- 物業(yè)公司投標(biāo)文件范本完整版
- 金屬非金屬礦山(地下礦山)考試題庫
- 手衛(wèi)生依從性
- 西北農(nóng)林科技大學(xué)高等數(shù)學(xué)期末考試試卷(含答案)
- 第一學(xué)期六年級家長會課件1
評論
0/150
提交評論