版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
/實(shí)驗(yàn)報(bào)告課程名稱數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)實(shí)驗(yàn)項(xiàng)目實(shí)現(xiàn)深度優(yōu)先搜索與廣度優(yōu)先搜索算法專業(yè)班級(jí)計(jì)算機(jī)科學(xué)與技術(shù)1班姓名全永春學(xué)號(hào)2011314103指導(dǎo)教師成績(jī)?nèi)掌谝?、目的與要求1、通過(guò)本實(shí)驗(yàn),掌握?qǐng)D,無(wú)向圖的基本概念,掌握?qǐng)D的遍歷。2、掌握?qǐng)D的深度優(yōu)先搜索(DFS)與廣度優(yōu)先搜索(BFS)算法。二、實(shí)驗(yàn)內(nèi)容1、建立圖的幾種存儲(chǔ)方式2、圖的深度優(yōu)先搜索算法3、圖的廣度優(yōu)先搜索算法三、實(shí)驗(yàn)原理圖的遍歷是圖的算法中一種非常重要的算法,通過(guò)建立圖的存儲(chǔ)結(jié)構(gòu),采用深度優(yōu)先搜索與廣度優(yōu)先搜索算法可以進(jìn)行圖的遍歷。廣度優(yōu)先遍歷與深度優(yōu)先遍歷的區(qū)別在于:廣度優(yōu)先遍歷是以層為順序,將某一層上的所有節(jié)點(diǎn)都搜索到了之后才向下一層搜索;而深度優(yōu)先遍歷是將某一條枝椏上的所有節(jié)點(diǎn)都搜索到了之后,才轉(zhuǎn)向搜索另一條枝椏上的所有節(jié)點(diǎn)。四、實(shí)驗(yàn)步驟1.建立圖的存儲(chǔ)結(jié)構(gòu).2.輸入圖的基本接點(diǎn)與信息,完成初始化圖的工作.3。完成圖的深度優(yōu)先搜索(DFS)和廣度優(yōu)先搜索算法,可以采用菜單形式進(jìn)行顯示與選擇。(可以在鍵盤輸入邊的信息以構(gòu)建一個(gè)無(wú)向圖。以(a,b)的形式輸入邊的信息;對(duì)此無(wú)向圖進(jìn)行深度優(yōu)先搜索,并輸出正確的序列。)? #include〈stdio.h>#include〈malloc.h>#definemax20typedefintDate;typedefcharInfo;typedefstructbian//邊的數(shù)據(jù)結(jié)構(gòu){?intzhi;?//Infoinfo;?structbian*N;}bian;typedefstruct//節(jié)點(diǎn)數(shù)據(jù)結(jié)構(gòu){?inti; bian*F;}Vex;typedefstruct//用來(lái)作隊(duì)列,棧{ inttop; intbutton;?inta[100];}S;Ss;Vexv[max+1];//節(jié)點(diǎn)個(gè)數(shù)bian*bu;intn,e;voidcreat(yī)e()//創(chuàng)建圖{bian*b; inti,v1,v2;?voidmemo();?printf("請(qǐng)輸入節(jié)點(diǎn)個(gè)數(shù)N,邊數(shù)E\n"); printf(”節(jié)點(diǎn)個(gè)數(shù)N\n"); printf(”");?scanf("%d”,&n);?printf("邊數(shù)E\n”);?printf(”"); scanf(”%d",&e);?printf("請(qǐng)輸入節(jié)點(diǎn)信息\n"); for(i=1;i<=n;i++)?{ ???scanf("%d",&v[i].i);??} for(i=1;i〈=n;i++) ?v[i].F=0;?printf(”請(qǐng)輸入邊\n"); printf("起點(diǎn)終點(diǎn)\n");?for(i=1;i〈=e;i++) {??printf("");?scanf(”%d%d",&v1,&v2);? b=(bian*)malloc(sizeof(bian)); b—〉zhi=v2; b—>N=v[v1]。F; v[v1].F=b;??b=(bian*)malloc(sizeof(bian)); b->zhi=v1; b->N=v[v2]。F; v[v2].F=b;??} memo();}intp[max];voidvist(inti){ printf("%d”,v[i].i);?printf(”—>”);}voidaa()//查看表結(jié)構(gòu){ voidmemo();?inti,j;bian*b;?printf("numDAtenextnextnext。...\n”); for(i=1;i<=n;i++)?{ printf(”%d",i);? ? ?printf("%d”,v[i]。i);?? b=v[i].F; while(b!=0) ?{? ?j=b->zhi;? ?printf("%d",v[j]。i); ?b=b->N;??} ?printf(”\n"); }? printf(”\n”); memo();}intf(inti)//返回沒有被訪問(wèn)過(guò)的I的節(jié)點(diǎn){?intj=0;?bu=v[i].F; while(bu?。剑? {??if(p[bu->zhi]==0) {j=bu->zhi;break;}bu=bu->N; }?returnj;}voiddfst(inti)//深度優(yōu)先搜索{ intj,t; if(p[i]==0) {?vist(i);p[i]=1; s。a[++s。top]=i; }while(s.top?。?)?{ t=s.a(chǎn)[s.top];? ?j=f(t);???if(j!=0) ? dfst(j);? elses。top=s.top-1; ? ? }?}voidss(){?voidmemo(); inti,j; s.top=0;?for(i=1;i<=n;i++) p[i]=0; printf("請(qǐng)輸入搜索起點(diǎn)i\n”); scanf(”%d”,&i);?printf("遍歷次序:");?for(;i<=n;i++) { ?if(p[i]==0) ?{ ? dfst(i);?? ??}??? ??} for(i=1;i〈=n;i++)?{ if(p[i]==0)??? dfst(i);? ??} printf("\n”); ?memo();}//廣度優(yōu)先搜索fst(inti){intj;if(p[i]==0){?vist(i);p[i]=1;s。a[s.top++]=i;}? ?while(bu!=0) { ???j=bu—>zhi;? ?bu=bu-〉N; ?? if(p[j]==0) ?? fst(j);?? ?? ? }}voidwfst(){ voidmemo();?intj,i; s。button=s。top=0;?for(i=1;i<=n;i++)?p[i]=0;?printf("請(qǐng)輸入搜索起點(diǎn)i\n"); scanf(”%d",&i);?printf(”遍歷次序:”); for(;i〈=n;i++) ?if(p[i]==0) ?{??? bu=v[i].F; fst(i); ?? ?? while(s.button!=s.top)???{ ? j=s.a(chǎn)[s.button];? j=f(j);??if(j〉0)?? fst(j);? else ??s。button=s.button+1; ?}? } for(i=1;i〈=n;i++)? if(p[i]==0) ?{ ? bu=v[i]。F;??? fst(i);????? ?? ??while(s.button!=s.top) ? {????j=s.a[s。button];??j=f(j); if(j〉0) fst(j);??else ??s.button=s.button+1; ?}? } ? printf(”\n”);??memo();}voidmemo()//菜單顯示{?inti;?printf(”1.創(chuàng)建無(wú)向圖2。深度優(yōu)先搜索3.廣度優(yōu)先搜索4。查看鄰接表邏輯結(jié)構(gòu)5.退出\n”);printf("請(qǐng)輸入相應(yīng)數(shù)字選擇所需操作\n");scanf("%d",&i);switch(i){case1:create();break;case2:ss();break;case3:wfst();break;case4:aa();break;case5:exit(1);break;}}voidmain(){memo();}? 五、運(yùn)行結(jié)果六、實(shí)驗(yàn)體會(huì)這堂Huffman編碼以及解碼的數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)課讓我對(duì)數(shù)據(jù)結(jié)構(gòu)的整體學(xué)習(xí)有了進(jìn)一步的了解,剛開始的時(shí)候稍微有點(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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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至2030年中國(guó)4-氟苯甲酰氯數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年卷裝食品袋項(xiàng)目投資價(jià)值分析報(bào)告
- 2025至2030年兔毛編織圍巾項(xiàng)目投資價(jià)值分析報(bào)告
- 2025至2030年葡萄酸鈣注射液項(xiàng)目投資價(jià)值分析報(bào)告
- 2025至2030年皮屑植絨項(xiàng)目投資價(jià)值分析報(bào)告
- 二零二五年度企業(yè)股東借款及投資風(fēng)險(xiǎn)共擔(dān)合同
- 二零二五年度河邊休閑農(nóng)業(yè)私人土地承包合同
- 2025年高校圖書館藏書采購(gòu)合同范本2篇
- 2025年度美容院美容師知識(shí)產(chǎn)權(quán)保護(hù)與使用合同4篇
- 全新2025年度山地自然保護(hù)區(qū)的科研觀測(cè)合同2篇
- 2025水利云播五大員考試題庫(kù)(含答案)
- 中藥飲片驗(yàn)收培訓(xùn)
- DB34T 1831-2013 油菜收獲與秸稈粉碎機(jī)械化聯(lián)合作業(yè)技術(shù)規(guī)范
- 創(chuàng)傷處理理論知識(shí)考核試題及答案
- 稅前工資反算表模板
- 2019級(jí)水電站動(dòng)力設(shè)備專業(yè)三年制人才培養(yǎng)方案
- 肝素誘導(dǎo)的血小板減少癥培訓(xùn)課件
- 抖音認(rèn)證承諾函
- 高等數(shù)學(xué)(第二版)
- 四合一體系基礎(chǔ)知識(shí)培訓(xùn)課件
- ICD-9-CM-3手術(shù)與操作國(guó)家臨床版亞目表
評(píng)論
0/150
提交評(píng)論