數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)---圖的儲(chǔ)存與遍歷.doc

數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)---圖的儲(chǔ)存與遍歷.doc

ID:51437442

大小:501.50 KB

頁數(shù):10頁

時(shí)間:2020-03-24

數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)---圖的儲(chǔ)存與遍歷.doc_第1頁
數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)---圖的儲(chǔ)存與遍歷.doc_第2頁
數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)---圖的儲(chǔ)存與遍歷.doc_第3頁
數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)---圖的儲(chǔ)存與遍歷.doc_第4頁
數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)---圖的儲(chǔ)存與遍歷.doc_第5頁
資源描述:

《數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)---圖的儲(chǔ)存與遍歷.doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。

1、數(shù)據(jù)結(jié)構(gòu) 課程實(shí)驗(yàn)報(bào)告 學(xué)號:姓名:實(shí)驗(yàn)日期:2016.1.7實(shí)驗(yàn)名稱:圖的存貯與遍歷一、實(shí)驗(yàn)?zāi)康恼莆請D這種復(fù)雜的非線性結(jié)構(gòu)的鄰接矩陣和鄰接表的存儲(chǔ)表示,以及在此兩種常用存儲(chǔ)方式下深度優(yōu)先遍歷(DFS)和廣度優(yōu)先遍歷(BFS)操作的實(shí)現(xiàn)。二、實(shí)驗(yàn)內(nèi)容與實(shí)驗(yàn)步驟題目1:對以鄰接矩陣為存儲(chǔ)結(jié)構(gòu)的圖進(jìn)行DFS和BFS遍歷問題描述:以鄰接矩陣為圖的存儲(chǔ)結(jié)構(gòu),實(shí)現(xiàn)圖的DFS和BFS遍歷?;疽螅航⒁粋€(gè)圖的鄰接矩陣表示,輸出頂點(diǎn)的一種DFS和BFS序列。測試數(shù)據(jù):V0V1V4V3V2如圖所示題目2:對以鄰接表為存儲(chǔ)結(jié)構(gòu)的圖進(jìn)行DFS和BFS遍歷問題描述:以鄰接表為圖的存儲(chǔ)結(jié)構(gòu),實(shí)現(xiàn)圖的D

2、FS和BFS遍歷。基本要求:建立一個(gè)圖的鄰接表存貯,輸出頂點(diǎn)的一種DFS和BFS序列。測試數(shù)據(jù):如圖所示1∧∧∧010∧3∧3∧4∧V0V1V2V3V4三、附錄:在此貼上調(diào)試好的程序。#include#include#include#defineM100typedefstructnode{charvex[M][2];intedge[M][M];intn,e;}Graph;intvisited[M];Graph*Create_Graph(){Graph*GA;inti,j,k,w;GA=(Graph*)malloc(size

3、of(Graph));printf("請輸入矩陣的頂點(diǎn)數(shù)和邊數(shù)(用逗號隔開):");scanf("%d,%d",&GA->n,&GA->e);printf("請輸入矩陣頂點(diǎn)信息:");for(i=0;in;i++)scanf("%s",&(GA->vex[i][0]),&(GA->vex[i][1]));for(i=0;in;i++)for(j=0;jn;j++)GA->edge[i][j]=0;for(k=0;ke;k++){printf("請輸入第%d條邊的頂點(diǎn)位置(i,j)和權(quán)值(用逗號隔開):",k+1);scanf("%d

4、,%d,%d",&i,&j,&w);GA->edge[i][j]=w;}return(GA);}voiddfs(Graph*GA,intv){inti;printf("%c%c",GA->vex[v][0],GA->vex[v][1]);visited[v]=1;for(i=0;in;i++)if(GA->edge[v][i]==1&&visited[i]==0)dfs(GA,i);}voidtraver(Graph*GA){inti;for(i=0;in;i++)visited[i]=0;for(i=0;in;i++)if(visited[i]

5、==0)dfs(GA,i);}voidbfs(Graph*GA,intv){intj,k,front=-1,rear=-1;intQ[M];printf("%c%c",GA->vex[v][0],GA->vex[v][1]);visited[v]=1;rear=rear+1;Q[rear]=v;while(front!=rear){front=front+1;k=Q[front];for(j=0;jn;j++)if(GA->edge[k][j]==1&&visited[j]==0){printf("%c%c",GA->vex[j][0],GA->vex[j][1

6、]);visited[j]=1;rear=rear+1;Q[rear]=j;}}}voidtraver1(Graph*GA){inti;for(i=0;in;i++)visited[i]=0;for(i=0;in;i++)if(visited[i]==0)bfs(GA,i);}typedefstructNODE{intadjvex;structNODE*next;}ENode;typedefstructNODE1{charvex[2];ENode*first;}VexNode;typedefstructFS1{VexNodeGL[M];intbian,top;

7、}FS;FS*CreateGL(){FS*kk=(FS*)malloc(sizeof(FS));inti,j,k;ENode*s;printf("請輸入頂點(diǎn)數(shù)和邊數(shù)(用逗號隔開):");scanf("%d,%d",&kk->top,&kk->bian);printf("請輸入頂點(diǎn)信息:");for(i=0;itop;i++){scanf("%s",kk->GL[i].vex);kk->GL[i].first=NULL;}printf("請輸入邊的信息(i,j):

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時(shí)聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。