1在无向图形中.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1在无向图形中

1.在無向圖形中,如果n個頂點中恰好擁有n*(n-1)/2條邊,可稱為(1)完美圖形(2)最佳圖形 (3)完整圖形 (4)合理圖形 解答: (3) 2. 請問以下哪些是圖形的應用(Application)?(1)工作排程 (2)遞迴程式 (3)電路分析(4)排序(5)最短路徑尋找(6)模擬 (7)副程式呼叫 (8)都市計劃 解答: (3),(5),(8) 3.下圖是否為雙連通圖形(Biconnected Graph)?有哪些連通單元(Connected Components)?試說明之。 ch08-52 解答:對於一個頂點V,如果將V上所連接的邊都去除所產生的G’,如果G’最少有兩個連通單元,則稱此頂點V為所謂的「連結點」(Articulation Point)。而一個沒有連結點的圖形,就是「雙連通圖形」(Biconnected Graph)。而這個有4個連結點C、E、F、H,因此並不是「雙連通圖形」。而此圖的連通單元,有下列五種: ch08-53 4. 請各位自行參考佇列的寫法,並設計一:先廣後深搜尋法(BFS)的C++程式。 /* [名稱]:ex06_01.cpp [示範]:先廣後深搜尋法(BFS) */ #include iostream #include cstdlib #define MAXSIZE 10//定義佇列的最大容量 using namespace std; int front=-1;//指向佇列的前端 int rear=-1;//指向佇列的後端 struct list//圖形頂點結構宣告 { int x;//頂點資料 struct list *next;//指向下一個頂點的指標 }; typedef struct list node; typedef node *link; struct GraphLink { link first; link last; }; int run[9];//用來記錄各頂點是否走訪過 int queue[MAXSIZE]; struct GraphLink Head[9]; void print(struct GraphLink temp) { link current=temp.first; while(current!=NULL) { cout[current-x]; current=current-next; } coutendl; } void insert(struct GraphLink *temp,int x) { link newNode; newNode=new node; newNode-x=x; newNode-next=NULL; if(temp-first==NULL) { temp-first=newNode; temp-last=newNode; } else { temp-last-next=newNode; temp-last=newNode; } } //佇列資料的存入 void enqueue(int value) { if(rear=MAXSIZE) return; rear++; queue[rear]=value; } //佇列資料的取出 int dequeue() { if(front==rear) return -1; front++; return queue[front]; } //廣度優先搜尋法 void bfs(int current) { link tempnode; //臨時的節點指標 enqueue(current); //將第一個頂點存入佇列 run[current]=1; //將走訪過的頂點設定為1 cout[current]; //印出該走訪過的頂點 while(front!=rear) { //判斷目前是否為空佇列 current=dequeue(); //將頂點從佇列中取出 tempnode=Head[current].first; //先記錄目前頂點的位置 while(tempnode!=NULL) { if(run[tempnode-x]==0) { enqueue(tempnode-x); run[tempnode-x]=1; //記錄已走訪過 cout[tempnode-x];

文档评论(0)

jiupshaieuk12 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:6212135231000003

1亿VIP精品文档

相关文档