分別采用鄰接矩陣鄰接表存儲(chǔ)結(jié)構(gòu)實(shí)現(xiàn)圖的遍歷_第1頁(yè)
分別采用鄰接矩陣鄰接表存儲(chǔ)結(jié)構(gòu)實(shí)現(xiàn)圖的遍歷_第2頁(yè)
分別采用鄰接矩陣鄰接表存儲(chǔ)結(jié)構(gòu)實(shí)現(xiàn)圖的遍歷_第3頁(yè)
分別采用鄰接矩陣鄰接表存儲(chǔ)結(jié)構(gòu)實(shí)現(xiàn)圖的遍歷_第4頁(yè)
分別采用鄰接矩陣鄰接表存儲(chǔ)結(jié)構(gòu)實(shí)現(xiàn)圖的遍歷_第5頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、#define INFINITY 0#define INF32767#define MAX_NUM 20#define MAXV 100#include<stdio.h>typedef char VRType;typedef enumDG=1,DN,UDG,UDNGraphKind;typedef struct ArcCell VRType adj;ArcCell *info;AdjMatrixMAX_NUMMAX_NUM;typedef struct VRType vexsMAX_NUM;AdjMatrix arcs;int vexnum,arcnum;GraphKind kin

2、d;MGraph;void PRIN(MGraph &G);int LocateVex(MGraph &G,VRType v1);int FirstAdjVex(MGraph &G,int v);int NextAdjVex(MGraph &G,int v,int w);void CreateUDN(MGraph &G)int i,j,k,w; VRType v1,v2; G.kind =UDN; printf("構(gòu)造無(wú)向網(wǎng)n");printf("G.vexnum:"); scanf("%d",

3、&G.vexnum );printf("G.arcnum:"); scanf("%d",&G.arcnum );getchar();for(i=0;i<G.vexnum ;i+)printf("G.vexs%d:",i);sscanf("%c",&G.vexs i);getchar();for(i=0;i<G.vexnum ;+i)for(j=0;j<G.vexnum ;+j)G.arcs ij.adj =INFINITY;G.arcs =NULL; for

4、(k=0;k<G.vexnum ;+k) printf("v1(char):"); scanf("%c",&v1);getchar();printf("v2(char):"); scanf("%c",&v2);getchar();printf("w(int):"); scanf("%d",&w);getchar();i=LocateVex(G,v1); j=LocateVex(G,v2); G.arcs ij.adj=w; G.arcs ji.a

5、dj=G.arcs ij.adj; int LocateVex(MGraph &G,VRType v1)int i;for(i=0;i<G.vexnum ;i+) if(v1=G.vexs i)return i;return -i;void CreateDN(MGraph &G)int i,j,k,w; VRType v1,v2;G.kind =DN;printf("構(gòu)造有向網(wǎng)n");printf("G.vexnum:"); scanf("%d",&G.vexnum );printf("G.ar

6、cnum:"); scanf("%d",&G.arcnum );getchar();for(i=0;i<G.vexnum ;i+)printf("G.vexs%d:",i);scanf("%c",&G.vexs i);getchar();for(i=0;i<G.vexnum ;+i)for(j=0;j<G.vexnum ;+j)G.arcs ij.adj =INFINITY;G.arcs =NULL; for(k=0;k<G.vexnum ;+k) printf(&qu

7、ot;v1(char):"); scanf("%c",&v1);getchar();printf("v2(char):"); scanf("%c",&v2);getchar();printf("w(int):"); scanf("%d",&w);getchar();i=LocateVex(G,v1); j=LocateVex(G,v2); G.arcs ij.adj=w; void CreateDG(MGraph &G)int i,j,k; VRType

8、 v1,v2;G.kind=DG;printf("構(gòu)造有向網(wǎng)n");printf("G.vexnum:"); scanf("%d",&G.vexnum );printf("G.arcnum:"); scanf("%d",&G.arcnum );getchar();for(i=0;i<G.vexnum ;i+)printf("G.vexs%d:",i); scanf("%c"),&G.vexs i; getchar();for(

9、i=0;i<G.vexnum ;+i)for(j=0;j<G.vexnum ;+j)G.arcs ij.adj =INFINITY;G.arcs =NULL;for(k=0;k<G.arcnum ;+k)printf("v1(char):"); scanf("%c",&v1);getchar();printf("v2(char):"); scanf("%c",&v2);getchar();i=LocateVex(G,v1);j=LocateVex(G,v2);G.ar

10、csij.adj=1;void CreateUDG(MGraph&G)int i,j,k;VRType v1,v2;G.kind=UDG;printf("構(gòu)造無(wú)向圖n");printf("G.vexnum:");scanf("%d",&G.vexnum);printf("G.arcnum:");scanf("%d",&G.arcnum);getchar();for(i=0;i<G.vexnum;i+)printf("G.vexs%d:",i);s

11、canf("%c",&G.vexsi);getchar();for(i=0;i<G.vexnum;+i) for(j=0;i<G.vexnum;+j)G.arcsij.adj=INFINITY;G.=NULL; for(k=0;i<G.vexnum;+k)printf("v1(char:)");scanf("%c",&v1);getchar(); printf("v2(char:)");scanf("%c",&v2);getchar

12、(); i=LocateVex(G,v1);j=LocateVex(G,v2); G.arcsij.adj=1; G.arcsji.adj=G.arcsij.adj;void CreateGraph(MGraph &G)printf("1:有向圖 2:有向網(wǎng) 3:無(wú)向圖 4:無(wú)向網(wǎng)n"); scanf("%d",&G.kind); switch(G.kind) case DG:CreateDG(G);PRIN(G);break; case DN:CreateDN(G);PRIN(G);break; case UDG:CreateUDG(G

13、);PRIN(G);break; case UDN:CreateUDN(G);PRIN(G);break; default:printf("ERROR");break; bool visitedMAX_NUM;void DFS(MGraph &G,int v)int w;true;for (w=FirstAdjVex(G,v);w>=0;w=NextAdjVex(G,v,w)if(!visitedw)DFS(G,w);void DFSTraverse(MGraph &G,int v)int i;for(i=0;i<G.vexnum;+i)visi

14、tedi=false;for(i=0;i<G.vexnum;+i)DFS(G,v);int FirstAdjVex(MGraph&G,int v)int i,w; for(i=0;i<G.vexnum;+i)if(G.arcsvi.adj!=0)w=i;break;return w;void PRIN(MGraph&G)int i,j;for(i=0;i<G.vexnum;+i) for(j=0;i<G.vexnum;+j) printf("%5d",G.arcsii.adj);printf("n");void B

15、FSTraverse(MGraph &G,int v)int queueMAX_NUM,front=0,rear=0;int i,w,u;for(i=0;i<G.vexnum;+i)visitedi=false;for(i=0;i<G.vexnum;+i) if(!visitedi)visitedi=true;printf("%4c",G.vexsv);rear=(rear+1)%MAX_NUM;queuerear=i;while(front!=rear)front=(front+1)%MAX_NUM;u=queuefront;for (w=FirstAdjVex(G,u);w>=0;w=NextAdjVex(G,u,w)if(!visitedw)visitedw=true;printf("%4c",G.vexsw);rear=

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論