版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、1 .實驗題目圖的基本操作2 .實驗?zāi)康?)掌握圖的鄰接矩陣、鄰接表的表示方法。2)掌握建立圖的鄰接矩陣的算法。3)掌握建立圖的鄰接表的算法。4)加深對圖的理解,逐步培養(yǎng)解決實際問題的編程能力3 .需求分析(1)編寫圖基本操作函數(shù)。建立圖的鄰接表,鄰接矩陣鄰接表表示的圖的遞歸深度優(yōu)先遍歷鄰接矩陣表示的圖的遞歸深度優(yōu)先遍歷鄰接表表示的圖的廣度優(yōu)先遍歷鄰接矩陣表示的圖的廣度優(yōu)先遍歷Create_Graph(LGraphlg.MGraphmg)LDFS(LGraphg,inti)MDFS(MGraphg,inti,intvn)LBFS(LGraphg,ints,intn)MBFS(MGraphg,i
2、nts,intn)(2)調(diào)用上述函數(shù)實現(xiàn)下列操作。建立一個圖的鄰接矩陣和圖的鄰接表。采用遞歸深度優(yōu)先遍歷輸出圖的鄰接矩陣采用遞歸深度優(yōu)先遍歷輸出圖的鄰接表。采用圖的廣度優(yōu)先調(diào)歷輸出圖的鄰接表。采用圖的廣度優(yōu)先遍歷輸出圖的鄰接矩陣4.概要設(shè)計(1)結(jié)構(gòu)體typedefstructcharvexsMAX_VERTEX_NUM;/頂點向量intacrsMAX_VERTEX_NUMMAX_VERTEX_NUM;/鄰接矩陣intvexnum,arcnum;/圖當(dāng)前頂點數(shù)和弧數(shù)MGraph;typedefstructArcNodeintadjvex;/該弧所指向的頂點的位置福建師范大學(xué)物光院計算機教學(xué)輔導(dǎo)
3、講義structArcNode*nextarc;/指向下一條弧的指針ArcNode;/頂點信息typedefstructVNodechardata;ArcNode*firstarc;/指向第一條依附該頂點的弧的指針VNode,AdjListMAX_VERTEX_NUM;typedefstructAdjListvertices;intvexnum,arcnum;/圖當(dāng)前頂點數(shù)和弧數(shù)LGraph;typedefstructQueueintarryMAX_VERTEX_NUM;intfront,rear;Queue;(2)本程序主要包含6個函數(shù):主函數(shù)main()建立圖的鄰接矩陣,鄰接表鄰接表表示的
4、圖的遞歸深度優(yōu)先遍歷鄰接矩陣表示的圖的遞歸深度優(yōu)先遍歷鄰接表表示的圖的廣度優(yōu)先遍歷鄰接矩陣表示的圖的廣度優(yōu)先遍歷各函數(shù)間調(diào)用關(guān)系如下:Create_Graph()LDFS()MDFS()LBFS()MBFS()2Dreate_Graph()LDFS()福建師范大學(xué)物光院計算機教學(xué)輔導(dǎo)講義(3)主函數(shù)的偽碼main()(定義鄰接矩陣和鄰接表;建立鄰接矩陣和鄰接表;鄰接矩陣MDFS深度優(yōu)先遍歷;鄰接矩陣MBFS廣度優(yōu)先遍歷鄰接表LDFS深度優(yōu)先遍歷;鄰接表LBFS廣度優(yōu)先遍歷)5詳細(xì)設(shè)計#include<stdio.h>#include<malloc.h>#include&
5、lt;stddef.h>#include<math.h>#defineOK1#defineERROR0#defineMAX_VERTEX_NUM33intvisitedMAX_VERTEX_NUM;typedefstruct(/圖當(dāng)前頂點數(shù)和弧數(shù)intvexnum,arcnum;福建師范大學(xué)物光院計算機教學(xué)輔導(dǎo)講義charvexsMAX_VERTEX_NUM;/頂點向量intacrsMAX_VERTEX_NUMMAX_VERTEX_NUM;/鄰接矩陣MGraph;typedefstructArcNodeintadjvex;structArcNode*nextarc;ArcNo
6、de;typedefstructVNodechardata;ArcNode*firstarc;VNode,AdjListMAX_VERTEX_NUM;typedefstructAdjListvertices;intvexnum,arcnum;LGraph;typedefstructQueueintarryMAX_VERTEX_NUM;intfront,rear;福建師范大學(xué)物光院計算機教學(xué)輔導(dǎo)講義Queue;QueueQ;voidInitQueue()(Q.front=Q.rear=0;intQueueEmpty(Queue*Q)(if(Q->front=Q->rear)retur
7、n1;elsereturn0;voidEnQueue(Queue*Q,intw)(if(Q->rear+1)%MAX_VERTEX_NUM=Q->front)printf("Error!");else(Q->arryQ->rear=w;Q->rear=(Q->rear+1)%MAX_VERTEX_NUM福建師范大學(xué)物光院計算機教學(xué)輔導(dǎo)講義)intDeQueue(Queue*Q)(intu;if(Q->front=Q->rear)return-1;u=Q->front;Q->front=(Q->front+1)
8、%MAX_VERTEX_NUMreturnu;)intLocatevex(MGraph*Mg,charv)(inti;for(i=0;Mg->vexsi!=v;i+);if(i>Mg->vexnum)printf("ERROR");returni;)intCreate_Graph(MGraph*Mg,LGraph*Lg)(inti,j,k;charv1,v2;ArcNode*q,*p;福建師范大學(xué)物光院計算機教學(xué)輔導(dǎo)講義printf("輸入圖的頂點數(shù)和弧數(shù):");scanf("%d%d",&Mg->ve
9、xnum,&Mg->arcnum);getchar();Lg->vexnum=Mg->vexnum;Lg->arcnum=Mg->arcnum;for(i=0;i<Mg->vexnum;i+)printf("請輸入一個字符彳為圖的頂點:");scanf("%c",&Mg->vexsi);getchar();Lg->verticesi.data=Mg->vexsi;Lg->verticesi.firstarc=NULL;for(i=0;i<Mg->vexnum;i
10、+)for(j=0;j<Mg->vexnum;j+)Mg->acrsij=0;for(k=0;k<Mg->arcnum;k+)printf("請輸入一條邊連接的2個頂點:");福建師范大學(xué)物光院計算機教學(xué)輔導(dǎo)講義scanf("%c%c",&v1,&v2);getchar();i=Locatevex(Mg,v1);j=Locatevex(Mg,v2);Mg->acrsji=Mg->acrsij=1;p=(ArcNode*)malloc(sizeof(ArcNode);p->adjvex=i;p
11、->nextarc=Lg->verticesj.firstarc;Lg->verticesj.firstarc=p;q=(ArcNode*)malloc(sizeof(ArcNode);q->adjvex=j;q->nextarc=Lg->verticesi.firstarc;Lg->verticesi.firstarc=q;returnOK;intLAdjVex(LGraph*Lg,intk)ArcNode*p;for(p=Lg->verticesk.firstarc;p!=NULL;p=p->nextarc)if(!visitedp-&
12、gt;adjvex)returnp->adjvex;福建師范大學(xué)物光院計算機教學(xué)輔導(dǎo)講義return-1;)voidLDFS(LGraph*Lg,inti)(intk;visitedi=OK;printf("%c",Lg->verticesi.data);Lg,k)for(k=LAdjVex(Lg,i);k>=0;k=LAdjVex(if(!visitedk)LDFS(Lg,k);)intAdjVes(MGraph*Mg,intk)(inti;for(i=0;i<Mg->vexnum;i+)if(Mg->acrski&&(
13、!visitedi)returni;return-1;)voidMDFS(MGraph*Mg,inti)(intk;福建師范大學(xué)物光院計算機教學(xué)輔導(dǎo)講義visitedi=1;printf("%c",Mg->vexsi);for(k=AdjVes(Mg,i);k>=0;k=AdjVes(Mg,k)if(!visitedk)MDFS(Mg,k);/遞歸voidLBFS(LGraph*Lg)(inti,u,w;for(i=0;i<Lg->vexnum;+i)visitedi=0;InitQueue();for(i=0;i<Lg->vexnum;
14、+i)if(!visitedi)(visitedi=1;printf("%c",Lg->verticesi.data);EnQueue(&Q,i);while(!QueueEmpty(&Q)(u=DeQueue(&Q);Lg,u)for(w=LAdjVex(Lg,u);w>=0;w=LAdjVex(if(!visitedw)10福建師范大學(xué)物光院計算機教學(xué)輔導(dǎo)講義(visitedw=1;printf("%c",Lg->verticesw.data);EnQueue(&Q,w);voidMBFS(MGrap
15、h*Mg)(inti,w,u;for(i=0;i<Mg->vexnum;i+)visitedi=0;InitQueue();for(i=0;i<Mg->vexnum;+i)if(!visitedi)/沒被訪問過(visitedi=1;printf("%c",Mg->vexsi);EnQueue(&Q,i);while(!QueueEmpty(&Q)(u=DeQueue(&Q);11福建師范大學(xué)物光院計算機教學(xué)輔導(dǎo)講義for(w=AdjVes(Mg,u);w>=0;w=AdjVes(Mg,u)if(!visitedw
16、)/沒被訪問過(visitedw=1;printf("%c",Mg->vexsw);EnQueue(&Q,w);/入隊voidmain()(inti;MGraphMg;LGraphLg;Create_Graph(&Mg,&Lg);printf("鄰接表深度優(yōu)先遍歷LDFS:t");for(i=0;i<Lg.vexnum;+i)visitedi=0;for(i=0;i<Lg.vexnum;+i)if(!visitedi)LDFS(&Lg,i);printf("n");12福建師范大學(xué)物光院計算機教學(xué)輔導(dǎo)講義printf("鄰接矩陣深度優(yōu)先遍歷MDFS:t");for(i=0;i<Mg.vexnum;i+)visitedi=0;for(i=0;i<Mg.vexnum;i+)if(!visitedi)MDFS(&Mg,i);printf("n鄰接表廣度優(yōu)先遍歷LBFS:t"
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 機場9米易折型玻璃鋼接閃桿 玻璃纖維航空易碎桿 場變放電避雷針
- 年產(chǎn)100萬件汽車內(nèi)飾注塑零部件項目可行性研究報告模板-立項備案
- 護發(fā)防脫知識培訓(xùn)課件
- “雙減”政策下小學(xué)數(shù)學(xué)精準(zhǔn)教學(xué)案例分析-以“認(rèn)識鐘表”教學(xué)為例
- 二零二五年度垃圾處理設(shè)施承攬施工合同范本下載2篇
- 全國中小學(xué)生wedo機器人小小編程師-8.《蜘蛛機器人》說課稿
- 山東省臨沂市莒南縣2024-2025學(xué)年八年級上學(xué)期1月期末生物試題( 含答案)
- 二零二五年度建筑工地勞務(wù)用工與施工現(xiàn)場能源消耗監(jiān)測合同3篇
- 印刷工藝 課件全套 楊中華 1 印刷概論 -6 印刷設(shè)計案例賞析
- 海南省??谑心承?024-2025學(xué)年高三上學(xué)期12月月考語文試卷(含答案)
- 022化妝品委托加工合同
- 樁裂縫計算(自動版)
- 高邊坡施工危險源辨識及分析
- 給排水全套資料表格模版
- 萬噸鈦白粉項目建議
- 化妝品購銷合同范本
- 7725i進樣閥說明書
- 銀監(jiān)會流動資金貸款需求量測算表
- 榴園小學(xué)寒假留守兒童工作總結(jié)(共3頁)
- 初中物理-電功率大題專項
- 時光科技主軸S系列伺服控制器說明書
評論
0/150
提交評論