版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
答:11、設(shè)圖G=(V,E),V={1,2,3,4,5,6},E={〈1,2〉,〈1,3〉,〈2,5〉,〈3,6〉,〈6,5〉,〈5,4〉,〈6,4〉}。畫出圖G,并寫出圖G中頂點的所有拓撲序列。1,2,3,6,5,41,3,2,6,5,41,3,6,2,5,4五、代碼填空題01、圖的存儲結(jié)構(gòu)定義如下:typedefstructArcCell{VRTypeadj;/*圖中有1/0表示是否有邊,網(wǎng)中表示邊上的權(quán)值*//*InfoType*info;與邊相關(guān)的信息*/}ArcCell,AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM];typedefstruct{VertexTypevexs[MAX_VERTEX_NUM];/*頂點向量*/AdjMatrixarcs;/*鄰接矩陣*/intvexnum,arcnum;/*圖中當(dāng)前頂點數(shù)和邊數(shù)*/}MGraph;請寫出下面函數(shù)實現(xiàn)的功能:頂點在頂點向量中的定位。intLocateVex(MGraphG,VertexTypev){inti;for(i=0;i〈G.vexnum;i++)if(strcmp(v,G.vexs[i])==0)break;returni;}下面函數(shù)的功能是在圖中查找第1個鄰接點,請?zhí)羁?。intFirstAdjVex(MGraphG,intv){intj,p=-1;for(j=0;j〈G.vexnum;j++)if(G.arcs[v][j].adj==1){p=j;break;}returnp;下面函數(shù)的功能是在圖中查找下一個鄰接點,請?zhí)羁?。intNextAdjVex(MGraphG,intv,intw){intj,p=-1;for(j二w+1;j〈G.vexnum;j++)if(G.arcs[v][j].adj==l){p=j;break;}returnp;}02、已知圖的鄰接表表示的形式說明如下:#defineMaxNum80typedefstructnode{intadjvex;//鄰接點域structnode*next;//鏈指針域}EdgeNode;//邊表結(jié)點結(jié)構(gòu)描述typedefstruct{charvertex;//頂點域EdgeNode*firstedge;//邊表頭指針}VertexNode;//頂點表結(jié)點結(jié)構(gòu)描述typedefstruct{VertexNodeadjlist[MaxNum];//鄰接表intn,e;}AlGraph;//鄰接表結(jié)構(gòu)描述下列算法輸出圖G的深度優(yōu)先生成樹(或森林)的邊,閱讀算法,并在空缺處填入合適的內(nèi)容,使其成為個完整的算法。typedefenum{FALSE,TRUE}Boolean;Booleanvisited[MaxNum];voidDFSForest(AlGraph*G){for(i=0;i〈G-〉n;i++)visited[i]二FALSE;for(i=0;i〈G-〉n;i++)if(!visited[i])DFSTree(G,i);}voidDFSTree(AlGraph*G,inti){visited[i]=TRUE;p=G-〉adjlist[i].firstedge;while(p!=NULL){if(!visited[p-〉adjves]){printf(G-〉adjlist[i].vertex,G-〉adjlist[p-〉adjvex].vertex);DSFTree(G,p-〉adjvex);}p=p-〉next;}}六、算法設(shè)計題01、編寫編歷算法,完成對圖的深度優(yōu)先搜索和廣度優(yōu)先搜索。答:深度優(yōu)先搜索:課本P169算法7.4和算法7.5廣度優(yōu)先搜索:課本P170算法7.602、編寫算法,由依次輸入的頂點數(shù)目、弧的數(shù)目、各頂點的信息和各條弧的信息建立有向圖的鄰接表。答:StatusBuild_AdjList(ALGraph&G)//輸入有向圖的頂點數(shù),邊數(shù),頂點信息和邊的信息建立鄰接表{InitALGraph(G);scanf("%d",&v);if(v〈0)returnERROR;//頂點數(shù)不能為負G.vexnum=v;scanf("%d",&a);
if(a<0)returnERROR;//邊數(shù)不能為負G.arcnum=a;for(m=0;m<v;m++)G.vertices[m].data=getchar();//輸入各頂點的符號for(m=1;m<=a;m++){t=getchar();h=getchar();//t為弧尾,h為弧頭if((i=LocateVex(G,t))<0)returnERROR;if((j=LocateVex(G,h))<0)returnERROR;//頂點未找到p=(ArcNode*)malloc(sizeof(ArcNode));if(!G.vertices.[i].firstarc)G.vertices[i].firstarc=p;else{for(q=G.vertices[i].firstarc;q->nextarc;q=q->nextarc);q->nextarc=p;}p->adjvex=j;p->nextarc=NULL;}//whilereturnOK;}//Build_AdjList03、試在鄰接矩陣存儲結(jié)構(gòu)上實現(xiàn)圖的基本操作:DeleteArc(G,v,w),即刪除一條邊的操作。提示:要刪除所有從第i個頂點出發(fā)的邊,即將鄰接矩陣的第i行全部置0。答://本題中的圖G均為有向無權(quán)圖。StatusDelete_Arc(MGraph&G,charv,charw)//在鄰接矩陣表示的圖G上刪除邊(v,w){if((i=LocateVex(G,v))<0)returnERROR;if((j=LocateVex(G,w))<0)returnERROR;if(G.arcs[i][j].adj){G.arcs[i][j].adj=0;G.arcnum--;}returnOK;}//Delete_Arc04、有n個頂點的有向圖的鄰接表定義如下04、有n個頂點的有向圖的鄰接表定義如下:#defineMaxNum80typedefstructArcNode{intadjvex;structArcNode*nextarc;}ArcNode;typedefstructVNode{VertexTypedata;ArcNode*firstedge;}VNode,AdjList[MaxNum];typedefstruct{AdjListvertices;intvexnum,arcnum;}AlGraph;設(shè)計算法分別實現(xiàn)以下要求求出圖G中每個頂點的出度;求出圖G中出度最大的一個頂點,計算圖G中出度為0的頂點數(shù);//鄰接點域//鏈指針域//邊表結(jié)點結(jié)構(gòu)描述//頂點域//邊表頭指針//頂點向量結(jié)點結(jié)構(gòu)描述//鄰接表//鄰接表結(jié)構(gòu)描述輸出該頂點號及其信息判斷圖G中是否存在弧〈i,j〉。答:本題答案見實驗部分05、試基于圖的深度優(yōu)先搜索策略寫一算法,判別以鄰接表方式存儲的有向圖中是否存在由頂點v到頂點v的ij路徑(i^j)。注意:算法中涉及的圖的基本操作必須在此存儲結(jié)構(gòu)上實現(xiàn)。答:intvisited[MAXSIZE];//指示頂點是否在當(dāng)前路徑上intexist_path_DFS(ALGraphG,inti,intj)//深度優(yōu)先判斷有向圖G中頂點i到頂點j是否有路徑,是則返回1,否則返回0{if(i==j)return1;//i就是jelse{visited[i]=1;for(p=G.vertices[i].firstarc;p;p=p-〉nextarc){k=p-〉adjvex;辻(!visited[k]&&exist_path(k,j))returnl;//i下游的頂點到j(luò)有路徑}//for}//else}//exist_path_DFS解2:(以上算法似乎有問題:如果不存在路徑,則原程序不能返回0。我的解決方式是在原程序的中引入一變量level來控制遞歸進行的層數(shù)。具體的方法我在程序中用紅色標(biāo)記出來了。)intvisited[MAXSIZE];//指示頂點是否在當(dāng)前路徑上intlevel=l;//遞歸進行的層數(shù)intexist_path_DFS(ALGraphG,inti,intj)//深度優(yōu)先判斷有向圖G中頂點i到頂點j是否有路徑,是則返回1,否則返回0{if(i==j)return1;//i就是jelse{vis
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度山西省高校教師資格證之高等教育心理學(xué)自測模擬預(yù)測題庫
- 學(xué)校垃圾分類督導(dǎo)員工作總結(jié)
- 2024年智能設(shè)備硬件采購協(xié)議
- 2024室內(nèi)裝潢工程合作協(xié)議書
- 2024廣告服務(wù)公司與客戶協(xié)議
- 2024年供應(yīng)商協(xié)議格式
- 2024年專項事務(wù)跟蹤代理協(xié)議模板
- 2024城市地下停車場租賃協(xié)議
- 2024年商品交易協(xié)議模板
- 2024年稻草批發(fā)銷售協(xié)議范本
- 個體戶經(jīng)營章程
- 《西游記》完整版本
- 風(fēng)能發(fā)電的電網(wǎng)接入技術(shù)
- 年回收30萬噸廢塑料PET破碎清洗線建設(shè)項目可行性研究報告
- 初中語文大單元匯報課件1
- MOOC 科技英語寫作-西安電子科技大學(xué) 中國大學(xué)慕課答案
- 24春國家開放大學(xué)《離散數(shù)學(xué)》大作業(yè)參考答案
- 鯊魚知識課件
- 2023-2024年天原杯全國初中學(xué)生化學(xué)競賽復(fù)賽試題(含答案)
- (高清版)TDT 1047-2016 土地整治重大項目實施方案編制規(guī)程
- 自然教育行業(yè)的行業(yè)分析
評論
0/150
提交評論