版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 計算機(jī)科學(xué)與技術(shù)系</b></p><p><b> 課程設(shè)計報告</b></p><p> 20 11~20 12 學(xué)年第 二 學(xué)期</p><p> 2011 年 6 月</p><p><b> 圖遍歷的演示</b><
2、/p><p> 一、問題分析和任務(wù)定義</p><p> 很多涉及圖上操作的算法都是以圖的遍歷操作為基礎(chǔ)的。試寫一個程序,演示在連通的無向圖上訪問全部結(jié)點的操作。將每個結(jié)點看做一個地名,如合肥。然后任選國內(nèi)的城市,起點未合肥,忽略城市間的里程。</p><p> 設(shè)圖的結(jié)點20-30個,每個結(jié)點用一個編號表示(如果一個圖有n個結(jié)點,則它們的編號分別為1,2,…,n
3、)。通過輸入圖的全部邊(存于數(shù)據(jù)文件中,從文件讀寫)輸入一個圖,每個邊為一個數(shù)對,可以對邊的輸入順序作出某種限制。注意,生成樹的邊是有向邊,端點順序不能顛倒。</p><p> 二、數(shù)據(jù)結(jié)構(gòu)的選擇和概要設(shè)計</p><p> 城市與城市之間的關(guān)系使沒有方向的,無向圖采用鄰近多重表來實現(xiàn),主要要表示無向圖中的各個結(jié)點和邊,在多重表中邊是采用兩個結(jié)點來表示的。</p><
4、;p> 在鄰接表中Edgenode表示鄰接表中的結(jié)點類型,其中含有訪問標(biāo)記mark,一條邊所依附的兩個結(jié)點的序號ivex和jvex,以及分別指向依附于ivex和jvex的頂點邊的鏈域ilink和jlink。</p><p> 其中,鄰接表中的表頭結(jié)點用Vexnode表示,包含了頂點信息data和指向第一個邊結(jié)點的firstedge。</p><p> 用AMLGraph表示整個
5、無向圖,包含了圖的頂點vexnum和邊數(shù)edgenum。</p><p><b> 結(jié)點坐標(biāo)信息:</b></p><p> struct loc //結(jié)點坐標(biāo)信息</p><p><b> {</b></p><p> int v; //結(jié)點序號</p><p>
6、 int x; //x坐標(biāo)</p><p> int y; //y坐標(biāo)</p><p><b> };</b></p><p><b> 邊結(jié)點數(shù)據(jù)結(jié)構(gòu):</b></p><p> struct Edgenode//邊結(jié)點 </p><p><b>
7、 { </b></p><p> int mark;//標(biāo)志域,指示該邊是否被訪問過(0:沒有1:有) </p><p> int ivex,jvex;//該邊關(guān)聯(lián)的兩個頂點的位置 </p><p> Edgenode *ilink,*jlink;//分別指向關(guān)聯(lián)這兩個頂點的下一條邊 </p><p><b>
8、}; </b></p><p><b> 頂點結(jié)點:</b></p><p> struct Vexnode//頂點結(jié)點 </p><p><b> { </b></p><p> int data; //頂點名稱,用數(shù)字表示城市</p><p>
9、 Edgenode *firstedge;//指向第一條關(guān)聯(lián)該結(jié)點的邊 </p><p><b> }; </b></p><p> AMLGraph類:</p><p> 圖-1 AMLGraph類UML圖</p><p><b> 三、詳細(xì)設(shè)計和編碼</b></p><
10、;p> 程序主體部分主要包括兩大部分,一是遍歷算法部分;另一部分是對演示圖的處理。遍歷算法部分主要包括了,鄰接多重表構(gòu)造的無向圖的初始化、深度遍歷和廣度遍歷;對演示圖的處理包括了,結(jié)點坐標(biāo)信息的初始化和繪圖,運用了graphics.h庫中的繪圖函數(shù)。</p><p><b> 1、深度遍歷</b></p><p> 函數(shù)名稱: void DFS(int v
11、) </p><p> 函數(shù)功能:實現(xiàn)一張無向圖從一個指定結(jié)點的深度搜索遍歷,并輸出結(jié)點序號函數(shù)參數(shù): int v 開始的結(jié)點</p><p><b> 具體代碼:</b></p><p> void DFS(int v)//深度優(yōu)先搜索遍歷(遞歸)</p><p><b> {</b>
12、</p><p> Edgenode *p;</p><p> visited[v]=1;//標(biāo)志v已被訪問</p><p> cout<<v<<" ";</p><p><b> int i=v;</b></p><p> p=adjmul
13、ist[v].firstedge;//取v邊表的頭指針,使P指向firstedge</p><p> while(p!=NULL) //依次搜索v的鄰接點</p><p><b> {</b></p><p> if(p->ivex==i)</p><p><b> {</b><
14、;/p><p> if(visited[p->jvex]==0) //鄰近點未被訪問過</p><p><b> { </b></p><p> dline(l[v].x,l[v].y,l[p->jvex].x,l[p->jvex].y);</p><p> DFS(p->jvex)
15、; //遞歸調(diào)用</p><p><b> }</b></p><p> p=p->ilink;</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b&g
16、t;</p><p> if(visited[p->ivex]==0)</p><p><b> {</b></p><p> dline(l[v].x,l[v].y,l[p->ivex].x,l[p->ivex].y);</p><p> DFS(p->ivex);//遞歸調(diào)用<
17、/p><p><b> }</b></p><p> p=p->jlink;</p><p><b> }</b></p><p><b> } </b></p><p><b> }</b></p>&
18、lt;p><b> 2、廣度遍歷</b></p><p> 函數(shù)名稱:void BFS(int v) </p><p> 函數(shù)功能:實現(xiàn)一張無向圖從一個指定結(jié)點的廣度度搜索遍歷,并輸出結(jié)點序號;</p><p> 函數(shù)參數(shù): int v開始的結(jié)點,返回參數(shù)為void</p><p><b>
19、具體代碼:</b></p><p> void BFS(int v)//廣度優(yōu)先搜索遍歷</p><p><b> {</b></p><p><b> int i,vi;</b></p><p> int Queue[MAX_VERTEX_NUM],front=0,rear=0
20、; //建立隊列數(shù)組</p><p> Edgenode *p;</p><p> for(i=0;i<vexnum;i++)//全部節(jié)點標(biāo)記為未訪問</p><p> visited[i]=0;</p><p> visited[v]=1; //開始結(jié)點標(biāo)記為已訪問</p><p> cout&l
21、t;<v; //輸出當(dāng)前訪問結(jié)點位置</p><p> cout<<"\n";</p><p> rear=(rear+1)%MAX_VERTEX_NUM; //取模初始化隊列</p><p> Queue[rear]=v;//入隊</p><p> while(front!=rear)/
22、/隊頭和隊尾計數(shù)器不相等,即當(dāng)隊列非空</p><p><b> {</b></p><p> front=(front+1)%MAX_VERTEX_NUM;//出隊</p><p> vi=Queue[front];//vi即表頭數(shù)據(jù)元素值</p><p> p=adjmulist[vi].firstedge
23、;//p指向表頭節(jié)點所指的鄰接點</p><p> while(p!=NULL)//當(dāng)表頭指針?biāo)傅泥徑狱c不為空</p><p><b> {</b></p><p> if(p->ivex==vi)</p><p><b> {</b></p><p> i
24、f(visited[p->jvex]==0)//邊節(jié)點內(nèi)元素未被訪問則訪問節(jié)點內(nèi)元素,并對其標(biāo)記已訪問</p><p><b> {</b></p><p> visited[p->jvex]=1;</p><p> cout<<p->jvex<<" ";</
25、p><p> dline(l[vi].x,l[vi].y,l[p->jvex].x,l[p->jvex].y); //繪制路徑</p><p> rear=(rear+1)%MAX_VERTEX_NUM;//隊列的尾指針計數(shù)器加一,即后移一位</p><p> Queue[rear]=p->jvex;</p&
26、gt;<p><b> }</b></p><p> p=p->ilink;//邊節(jié)點內(nèi)元素已被訪問,指向下一鄰接點</p><p><b> }</b></p><p><b> else</b></p><p><b> {</
27、b></p><p> if(visited[p->ivex]==0)</p><p><b> {</b></p><p> visited[p->ivex]=1;</p><p> cout<<p->ivex<<" ";</p>
28、<p> dline(l[vi].x,l[vi].y,l[p->ivex].x,l[p->ivex].y); //繪制路徑</p><p> rear=(rear+1)%MAX_VERTEX_NUM;</p><p> Queue[rear]=p->ivex;</p><p><b> }</b
29、></p><p> p=p->jlink;</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p&
30、gt;<p> 3、圖的創(chuàng)建和初始化</p><p> 函數(shù)名稱:void AML_Init()</p><p> 函數(shù)功能:創(chuàng)建一張固定結(jié)點和邊數(shù)的無向圖,邊與結(jié)點的關(guān)系是從文件中讀取</p><p> 函數(shù)參數(shù):形參為空,返回也為void</p><p><b> 具體代碼:</b></
31、p><p> void AML_Init() </p><p><b> { </b></p><p> ifstream icin;</p><p> icin.open("d:\wenjian2.txt"); </p><p> int i,j,k;</p>
32、;<p> int edge[30][2];//二維數(shù)組來存儲邊的關(guān)系,30條邊和ivex,jvex邊集的兩結(jié)點</p><p> for(i=0;i<edgenum;i++)</p><p> for(j=0;j<2;j++)</p><p> icin>>edge[i][j];</p><
33、p> for(i=0;i<vexnum;i++) //初始化頂點</p><p><b> { </b></p><p> adjmulist[i].data=i+1; </p><p> adjmulist[i].firstedge=NULL; </p><p><b> } <
34、/b></p><p> for(k=0;k<edgenum;k++)//初始化邊信息</p><p><b> { </b></p><p> Edgenode *e=new Edgenode; //申請邊結(jié)點空間</p><p> e->ivex=edge[k][0];</p>
35、;<p> e->jvex=edge[k][1];//讀入2個頂點的值</p><p> e->ilink=adjmulist[e->ivex].firstedge;//將頭結(jié)點的firstedge指針賦給新結(jié)點的ilink</p><p> adjmulist[e->ivex].firstedge=e;//將頭結(jié)點的指針指向新結(jié)點<
36、;/p><p> e->jlink=adjmulist[e->jvex].firstedge;//將新結(jié)點的jlink指針指向其jvex結(jié)點所依附的結(jié)點</p><p> adjmulist[e->jvex].firstedge=e;</p><p><b> } </b></p><p>
37、 init_location(); //初始化所有結(jié)點的坐標(biāo)信息</p><p><b> } </b></p><p><b> 4、初始化頂點坐標(biāo)</b></p><p> 函數(shù)名稱:void init_location()</p><p> 函數(shù)功能:此函數(shù)為初始化頂點坐標(biāo),主要用來
38、讀取存儲在文件中的各個頂點坐標(biāo)信息</p><p> 函數(shù)參數(shù):形參為空,返回值為空</p><p><b> 具體代碼:</b></p><p> void init_location() //初始化結(jié)點的坐標(biāo)信息</p><p><b> {</b></p><p&
39、gt; ifstream icin;</p><p> l=new loc[20];</p><p> icin.open("d:\wenjian1.txt");</p><p> for(int i=1;i<=26;i++)</p><p> icin>>l[i].v>>l[i]
40、.x>>l[i].y;</p><p><b> }</b></p><p><b> 上機(jī)調(diào)試過程</b></p><p> 圖-2 具體的圖關(guān)系圖 圖-3 存儲頂點坐標(biāo)信息文件</p><p><b> 測試結(jié)果及其分析</b&g
41、t;</p><p> 圖-4 深度搜索遍歷結(jié)果</p><p> 圖-5深度搜索遍歷演示</p><p> 圖-6 廣度搜索遍歷演示</p><p> 圖-7 廣度度搜索遍歷演示</p><p><b> 六、用戶使用說明</b></p><p> 本程序采用
42、C++語言在Windows 7+VC6.0環(huán)境下編寫,主要功能是演示圖的兩種遍歷過程;</p><p> 程序所默認(rèn)演示無向圖包括26個結(jié)點和30條邊,其中26個結(jié)點數(shù)字分別代表26個省會城市,30條邊表示他們之間的關(guān)系,具體關(guān)系如演示圖所示;</p><p> 進(jìn)入軟件界面后,首先需要輸入開始進(jìn)行遍歷的城市位置(即對應(yīng)的結(jié)點數(shù)字),然后再進(jìn)行選擇進(jìn)行圖遍歷的方式,本程序提供2種圖遍歷
43、方式,深度優(yōu)先遍歷和廣度優(yōu)先遍歷,選擇遍歷方式后,遍歷結(jié)果將之間顯示在屏幕上,左邊數(shù)字為訪問的結(jié)點,右邊邊集是訪問時所經(jīng)過的邊。</p><p> 在運行程序之前,請確保系統(tǒng)裝有Easyx的graphicsk庫。</p><p><b> 七、參考文獻(xiàn)</b></p><p> [1] 王昆侖,李紅. 數(shù)據(jù)結(jié)構(gòu)與算法. 北京:中國鐵道出版
44、社,2006年5月。</p><p> [2] 編程中國:http://bbs.bccn.net/thread-329777-1-1.html</p><p> [3] Easyx:http://www.easyx.cn</p><p><b> 附錄</b></p><p><b> 詳細(xì)代碼:&
45、lt;/b></p><p><b> graph.h</b></p><p> #include <graphics.h> </p><p> #include <conio.h></p><p> #include <iostream> </p>
46、<p> #include <fstream> </p><p> //#include "image.h"</p><p> using namespace std; </p><p> #define MAX_VERTEX_NUM 30//頂點最大個數(shù)</p><p> bool v
47、isited[100]; //頂點是否被訪問標(biāo)志 </p><p> struct loc //結(jié)點坐標(biāo)信息</p><p><b> {</b></p><p> int v; //結(jié)點序號</p><p> int x; //x坐標(biāo)</p><p> int y; //y坐標(biāo)<
48、;/p><p><b> };</b></p><p> //鄰接多重表的存儲 </p><p> struct Edgenode//邊結(jié)點 </p><p><b> { </b></p><p> int mark;//標(biāo)志域,指示該邊是否被訪問過(0:沒有1:
49、有) </p><p> int ivex,jvex;//該邊關(guān)聯(lián)的兩個頂點的位置 </p><p> Edgenode *ilink,*jlink;//分別指向關(guān)聯(lián)這兩個頂點的下一條邊 </p><p><b> }; </b></p><p> struct Vexnode//頂點結(jié)點 </p>
50、;<p><b> { </b></p><p> int data; //頂點名稱,用數(shù)字表示城市</p><p> Edgenode *firstedge;//指向第一條關(guān)聯(lián)該結(jié)點的邊 </p><p><b> }; </b></p><p> class AMLGr
51、aph </p><p><b> { </b></p><p><b> private: </b></p><p> loc *l; //坐標(biāo)信息指針</p><p> Vexnode *adjmulist; //頂點數(shù)組指針 </p><p> int vex
52、num; //定點數(shù)目 </p><p> int edgenum; //邊數(shù)目 </p><p> int maxnum; //頂點數(shù)最大值 </p><p><b> public: </b></p><p><b> //構(gòu)造函數(shù)</b></p><p> A
53、MLGraph(int num1=26,int num2=30)</p><p><b> { </b></p><p> adjmulist=new Vexnode[num1]; </p><p> vexnum=num1;edgenum=num2;</p><p> maxnum=MAX_VERTEX_NUM
54、;</p><p><b> } </b></p><p><b> //析構(gòu)函數(shù)</b></p><p> ~AMLGraph()</p><p><b> { </b></p><p> delete[]adjmulist; </
55、p><p><b> } </b></p><p> //定位頂點在頂點數(shù)組中的位置 </p><p> int Locate_Vex(int v) </p><p><b> { </b></p><p> for(int i=0;i<vexnum;i++)&l
56、t;/p><p> if((adjmulist[i].data)==v) </p><p> return i; </p><p> return -1; </p><p><b> } </b></p><p><b> //構(gòu)造無向圖</b></p>
57、<p> void AML_Init() </p><p><b> { </b></p><p> ifstream icin;</p><p> icin.open("d:\wenjian2.txt"); </p><p> int i,j,k;</p><
58、p> int edge[30][2];//二維數(shù)組來存儲邊的關(guān)系,30條邊和ivex,jvex邊集的兩結(jié)點</p><p> for(i=0;i<edgenum;i++)</p><p> for(j=0;j<2;j++)</p><p> icin>>edge[i][j];</p><p> for
59、(i=0;i<vexnum;i++) //初始化頂點</p><p><b> { </b></p><p> adjmulist[i].data=i+1; </p><p> adjmulist[i].firstedge=NULL; </p><p><b> } </b><
60、/p><p> for(k=0;k<edgenum;k++)//初始化邊信息</p><p><b> { </b></p><p> Edgenode *e=new Edgenode; //申請邊結(jié)點空間</p><p> e->ivex=edge[k][0];</p><p&g
61、t; e->jvex=edge[k][1];//讀入2個頂點的值</p><p> e->ilink=adjmulist[e->ivex].firstedge;//將頭結(jié)點的firstedge指針賦給新結(jié)點的ilink</p><p> adjmulist[e->ivex].firstedge=e;//將頭結(jié)點的指針指向新結(jié)點</p><p
62、> e->jlink=adjmulist[e->jvex].firstedge;//將新結(jié)點的jlink指針指向其jvex結(jié)點所依附的結(jié)點</p><p> adjmulist[e->jvex].firstedge=e;</p><p><b> } </b></p><p> init_location();
63、 //初始化所有結(jié)點的坐標(biāo)信息</p><p><b> } </b></p><p><b> //深度優(yōu)先遍歷 </b></p><p> void DFS_Traverse() </p><p><b> { </b></p><p>
64、for(int i=0;i<vexnum;i++) </p><p> visited[i]=false;//初始化所有頂點未被訪問過</p><p> for(i=0;i<vexnum;i++) </p><p> if(!visited[i])//如果未被訪問過,進(jìn)行訪問DFS遍歷</p><p><b&g
65、t; DFS(i); </b></p><p> cout<<endl; </p><p><b> } </b></p><p> void DFS(int v)//深度優(yōu)先搜索遍歷(遞歸)</p><p><b> {</b></p><
66、p> Edgenode *p;</p><p> visited[v]=1;//標(biāo)志v已被訪問</p><p> cout<<v<<" ";</p><p><b> int i=v;</b></p><p> p=adjmulist[v].firstedge
67、;//取v邊表的頭指針,使P指向firstedge</p><p> while(p!=NULL) //依次搜索v的鄰接點</p><p><b> {</b></p><p> if(p->ivex==i)</p><p><b> {</b></p><p&g
68、t; if(visited[p->jvex]==0) //鄰近點未被訪問過</p><p><b> { </b></p><p> dline(l[v].x,l[v].y,l[p->jvex].x,l[p->jvex].y);</p><p> DFS(p->jvex); //遞歸調(diào)用</p
69、><p><b> }</b></p><p> p=p->ilink;</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p>&l
70、t;p> if(visited[p->ivex]==0)</p><p><b> {</b></p><p> dline(l[v].x,l[v].y,l[p->ivex].x,l[p->ivex].y);</p><p> DFS(p->ivex);//遞歸調(diào)用</p><p>
71、;<b> }</b></p><p> p=p->jlink;</p><p><b> }</b></p><p><b> } </b></p><p><b> }</b></p><p><b>
72、; //廣度優(yōu)先遍歷 </b></p><p> void BFS_Traverse() </p><p><b> { </b></p><p> for(int i=0;i<vexnum;i++) </p><p> visited[i]=false; </p><p&
73、gt; for(i=0;i<vexnum;i++) </p><p> if(!visited[i]) </p><p><b> BFS(i); </b></p><p> cout<<endl; </p><p><b> } </b></p><
74、p> void BFS(int v)//廣度優(yōu)先搜索遍歷</p><p><b> {</b></p><p><b> int i,vi;</b></p><p> int Queue[MAX_VERTEX_NUM],front=0,rear=0; //建立隊列數(shù)組</p><p>
75、 Edgenode *p;</p><p> for(i=0;i<vexnum;i++)//全部節(jié)點標(biāo)記為未訪問</p><p> visited[i]=0;</p><p> visited[v]=1; //開始結(jié)點標(biāo)記為已訪問</p><p> cout<<v; //輸出當(dāng)前訪問結(jié)點位置</p&g
76、t;<p> cout<<"\n";</p><p> rear=(rear+1)%MAX_VERTEX_NUM; //取模初始化隊列</p><p> Queue[rear]=v;//入隊</p><p> while(front!=rear)//隊頭和隊尾計數(shù)器不相等,即當(dāng)隊列非空</p>
77、<p><b> {</b></p><p> front=(front+1)%MAX_VERTEX_NUM;//出隊</p><p> vi=Queue[front];//vi即表頭數(shù)據(jù)元素值</p><p> p=adjmulist[vi].firstedge;//p指向表頭節(jié)點所指的鄰接點</p><
78、;p> while(p!=NULL)//當(dāng)表頭指針?biāo)傅泥徑狱c不為空</p><p><b> {</b></p><p> if(p->ivex==vi)</p><p><b> {</b></p><p> if(visited[p->jvex]==0){
79、</p><p> visited[p->jvex]=1;</p><p> cout<<p->jvex<<" ";</p><p> dline(l[vi].x,l[vi].y,l[p->jvex].x,l[p->jvex].y); rear=(rear+1)%MAX_VER
80、TEX_NUM; Queue[rear]=p->jvex;</p><p><b> }</b></p><p> p=p->ilink;//邊節(jié)點內(nèi)元素已被訪問,指向下一鄰接點</p><p><b> }</b></p><p><b> e
81、lse</b></p><p><b> {</b></p><p> if(visited[p->ivex]==0)</p><p><b> {</b></p><p> visited[p->ivex]=1;</p><p> cout
82、<<p->ivex<<" ";</p><p> dline(l[vi].x,l[vi].y,l[p->ivex].x,l[p->ivex].y); rear=(rear+1)%MAX_VERTEX_NUM;</p><p> Queue[rear]=p->ivex;</p><
83、;p><b> }</b></p><p> p=p->jlink;</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b
84、> }</b></p><p> void dline(int x1,int y1,int x2,int y2) //畫線</p><p><b> {</b></p><p> setlinestyle(PS_DASH, NULL, 3); //設(shè)置線形為寬度 3 像素的虛線</p><p&g
85、t; line(x1,y1,x2,y2);</p><p><b> }</b></p><p> void init_location() //初始化結(jié)點的坐標(biāo)信息</p><p><b> {</b></p><p> ifstream icin;</p><p&
86、gt; l=new loc[20];</p><p> icin.open("d:\wenjian1.txt");</p><p> for(int i=1;i<=26;i++)</p><p> icin>>l[i].v>>l[i].x>>l[i].y;</p><p>
87、;<b> }</b></p><p> void image()//繪制矢量無向圖</p><p><b> {</b></p><p> HWND hWnd = GetHWnd();</p><p> // 使用 API 函數(shù)修改窗口名稱</p><p>
88、SetWindowText(hWnd, "圖的遍歷演示");</p><p> HWND initgraph(</p><p> int Width,</p><p> int Height,</p><p> int Flag =SHOWCONSOLE </p><p><b>
89、; );</b></p><p> initgraph(800, 600); </p><p> loadimage(NULL, "D:\\map1.bmp");</p><p><b> }</b></p><p><b> }; </b></p
90、><p><b> Main.h</b></p><p> #include "graph.h" </p><p> #include <iostream> </p><p> #include <cstdlib></p><p> using n
91、amespace std; </p><p> void main() </p><p><b> { </b></p><p> system("color f0");</p><p> AMLGraph G; </p><p> G.AML_Init(); <
92、;/p><p><b> int v,op;</b></p><p> char op1;</p><p> cout<<"\t\t\t圖的DFS和BFS的演示V1.0\n";</p><p> cout<<"\t\t\t正在從文件中讀取。。。\n";
93、</p><p> cout<<"\t\t\t從文件中讀取信息完畢\n";</p><p> //cout<<"鄰接多重表結(jié)構(gòu):"<<endl; </p><p> cout<<"\n1:長春2:哈爾濱3:呼和浩特4:北京5:沈陽6:寧夏7:太原8:石家莊9:天津
94、10:濟(jì)南\n11:西安12:鄭州13:南京14:上海15:合肥16:成都17:重慶18:武漢19:杭州20:貴州\n21:長沙22:南昌23:福州24:昆明25:南寧26:廣州";</p><p> while(1){ </p><p> cout<<"\n\t\t\t請輸入起始位置(用地名前的數(shù)字表示):\n";</p>&
95、lt;p><b> cin>>v;</b></p><p> cout<<"\t\t1.DFS"<<endl;</p><p> cout<<"\t\t2.BFS"<<endl;</p><p> cout<<"
96、;\t\t請選擇遍歷方式:";</p><p><b> cin>>op;</b></p><p> switch(op)</p><p><b> {</b></p><p> case 1:cout<<"DFS如下:\n";G.ima
97、ge();G.DFS(v);break;</p><p> case 2:cout<<"BFS如下:\n";G.image();G.BFS(v);;break;</p><p><b> }</b></p><p> cout<<"\n\t\t\t是否繼續(xù)?(Y/N)";&l
98、t;/p><p><b> cin>>op1;</b></p><p> if(op1=='N'||op1=='n')</p><p><b> {</b></p><p> cout<<"\t\t\t感謝使用!";b
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 圖的廣度遍歷課程設(shè)計報告
- 課程設(shè)計-圖的遍歷
- 圖的遍歷課程設(shè)計
- 圖的遍歷課程設(shè)計
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告(圖的遍歷)
- 圖的遍歷實現(xiàn)課程設(shè)計--圖的遍歷的實現(xiàn)
- 課程設(shè)計論文-圖的遍歷
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計-----圖的遍歷
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計---圖的遍歷
- 《圖的建立與遍歷》數(shù)據(jù)結(jié)構(gòu)課程設(shè)計
- 數(shù)據(jù)庫課程設(shè)計---圖的存儲與遍歷
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計-圖的遍歷和構(gòu)建
- 圖的廣度優(yōu)先遍歷-數(shù)據(jù)結(jié)構(gòu)課程設(shè)計
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計---二叉樹的建立和遍歷的演示
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計---二叉樹和中序遍歷的演示
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計-- 圖的遍歷和生成樹求解
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計---圖的遍歷和生成樹求解
- 遍歷二叉樹課程設(shè)計
- 算術(shù)表達(dá)式求值演示-課程設(shè)計報告
- mfc課程設(shè)計報告—漢諾塔演示系統(tǒng)
評論
0/150
提交評論