2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論