




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第8章圖的連通性問(wèn)題連通性初步Question:如果一個(gè)無(wú)向圖是非連通圖,從某個(gè)頂點(diǎn)出發(fā),能否遍歷到所有的頂點(diǎn)?Answer:對(duì)非連通圖,從某個(gè)頂點(diǎn)出發(fā)進(jìn)行遍歷,只能遍歷到它所在的連通子圖上的所有頂點(diǎn)。依次從每個(gè)未訪問(wèn)過(guò)的頂點(diǎn)出發(fā)進(jìn)行遍歷,就可以遍歷完所有的頂點(diǎn),并且可以得到非連通圖的連通分量個(gè)數(shù)。//從頂點(diǎn)n出發(fā),DFS遍歷intDFS(intn){visited[n]=1;for(inti=1;i<=nodes;i++){if(node[n][i]==1&&!visited[i])DFS(i);}return0;}//依次從每個(gè)未訪問(wèn)過(guò)的頂點(diǎn)//出發(fā)DFSsubnets=0;for(intn=1;n<=nodes;n++){
if(!visited[n]){DFS(n);subnets++;}}關(guān)節(jié)點(diǎn)及重連通圖0123456789關(guān)節(jié)點(diǎn):在一個(gè)無(wú)向連通圖G中,當(dāng)且僅當(dāng)刪去G中的頂點(diǎn)v及其所關(guān)聯(lián)的邊后,可將圖分割成2個(gè)或2個(gè)以上的連通分量,則稱頂點(diǎn)v為關(guān)節(jié)點(diǎn)(ArticulationPoint),或者稱為割頂。圖(1)中,頂點(diǎn)1、3、5、7都是關(guān)節(jié)點(diǎn)重連通圖:沒(méi)有關(guān)節(jié)點(diǎn)的連通圖。在重連通圖上,任何一對(duì)頂點(diǎn)之間至少存在有2條路徑,在刪去某個(gè)頂點(diǎn)及其所關(guān)聯(lián)的邊時(shí),也不破壞圖的連通性。重連通分量如果連通圖G不是重連通圖,那么它可以包括幾個(gè)重連通分量。一個(gè)連通圖的重連通分量是該圖的極大連通子圖。圖(1)包含了6個(gè)連通分量0123456789177判斷關(guān)節(jié)點(diǎn)的樸素方法依次去掉每個(gè)頂點(diǎn)(及其所關(guān)聯(lián)的邊),然后用DFS去搜索整個(gè)圖,可得到該圖的連通分量的個(gè)數(shù),如果是大于2,則該頂點(diǎn)是關(guān)節(jié)點(diǎn)。(這種方法復(fù)雜度很高,只適合規(guī)模較小的題目)例子:ZOJ1311//依次去掉每個(gè)頂點(diǎn)(及其所關(guān)聯(lián)的邊),用DFS遍歷剩下的子圖,得連通分量個(gè)數(shù)for(intm=1;m<=nodes;m++){
intsubnets=0;//子網(wǎng)數(shù)目 memset(visited,0,sizeof(visited));
for(intn=1;n<=nodes;n++){
if(m==n)continue;//跳過(guò)頂點(diǎn)n(并不需要真正去掉頂點(diǎn)n)
if(!visited[n]){ DFS(m,n);//去掉頂點(diǎn)m,從頂點(diǎn)n出發(fā)DFS subnets++; } }
if(subnets>1)SPF++;}//去掉第m個(gè)頂點(diǎn)及其所關(guān)聯(lián)的邊,從第n個(gè)頂點(diǎn)出發(fā)進(jìn)行DFSintDFS(intm,intn){ visited[n]=1;
for(inti=1;i<=nodes;i++) {
if(i==m)continue;//不考慮第m個(gè)頂點(diǎn)
if(node[n][i]==1&&!visited[i]) DFS(m,i); }
return0;}從頂點(diǎn)3出發(fā)進(jìn)行深度優(yōu)先搜索,得到圖(b)所示的生成樹(shù),并改畫(huà)成圖(c)所示的樹(shù)形形狀。圖(c)中每個(gè)頂點(diǎn)外側(cè)的數(shù)字標(biāo)明了進(jìn)行深度優(yōu)先搜索時(shí)各頂點(diǎn)訪問(wèn)的次序,稱為頂點(diǎn)的深度優(yōu)先數(shù),可以記在數(shù)組dfn中。0123456789(a)0123456789(b)1234510987601234(c)1234510987697658求關(guān)節(jié)點(diǎn)的算法注意:如果u和v是2個(gè)頂點(diǎn),且在深度優(yōu)先搜索生成樹(shù)中u是v的祖先,則有dfn[u]<dfn[v],表明u的深度優(yōu)先數(shù)小于v,u先于v被訪問(wèn)。01234(c)1234510987697658回邊與交叉邊回邊:當(dāng)且僅當(dāng)u在生成樹(shù)中是v的祖先,或者v是u的祖先,非生成樹(shù)的邊(u,v)才成為一條回邊。如圖(a)中的(1,3)、(5,7)都是回邊。交叉邊:除生成樹(shù)的邊、回邊外,原圖中的其他邊稱為交叉邊。一旦生成樹(shù)確定以后,那么原圖中的邊只可能有回邊和生成樹(shù)的邊,交叉邊實(shí)際上是不存在的。為什么?假設(shè)圖(a)中存在邊(1,7)(這就是所謂的交叉邊),那么頂點(diǎn)7(甚至其他頂點(diǎn)都)只能位于頂點(diǎn)3的左邊這條子樹(shù)中。0123456789(a)01234(c)1234510987697658頂點(diǎn)u是關(guān)節(jié)點(diǎn)的充要條件:如果頂點(diǎn)u是深度優(yōu)先搜索生成樹(shù)的根,則u至少有2個(gè)子女;為什么?刪除u,它的子女所在的子樹(shù)就斷開(kāi)了,你不用擔(dān)心這些子樹(shù)之間(在原圖中)可能存在邊,因?yàn)榻徊孢吺遣淮嬖诘?。如果u不是生成樹(shù)的根,則它至少有一個(gè)子女w,從w出發(fā),不可能通過(guò)w、w的子孫,以及一條回邊組成的路徑到達(dá)u的祖先。(這時(shí)刪去頂點(diǎn)u及其所關(guān)聯(lián)的邊,則以頂點(diǎn)w為根的子樹(shù)就從搜索樹(shù)中脫離了。)頂點(diǎn)5為什么是關(guān)節(jié)點(diǎn)?頂點(diǎn)6為什么不是關(guān)節(jié)點(diǎn)?0123456789(a)01234(c)1234510987697658因此,可對(duì)圖G的每個(gè)頂點(diǎn)u定義一個(gè)low值,low[u]是從u或u的子孫出發(fā)通過(guò)回邊可以到達(dá)的最低深度優(yōu)先數(shù)。Low[u]=Min{dfn[u],Min{low[w]|w是u的一個(gè)子女},min{dfn[v]|(u,v)是一條回邊}}因此,頂點(diǎn)u是關(guān)節(jié)點(diǎn)的充要條件是:u或者是具有兩個(gè)以上子女的一個(gè)生成樹(shù)的根,或者雖然不是一個(gè)根,但它有一個(gè)子女w,使得low[w]>=dfn[u],這時(shí)w及其子孫不存在指向頂點(diǎn)u的祖先的回邊。(這時(shí)刪去頂點(diǎn)u及其所關(guān)聯(lián)的邊,則以頂點(diǎn)w為根的子樹(shù)就從搜索樹(shù)中脫離了。)頂點(diǎn)0123456789dfn54312678109low510low19low16low16low16第一棵子樹(shù),回退順序:0,1,2,4,3第二棵子樹(shù),回退順序:8,9,7,6,501234(c)1234510987697658在DFS的回退過(guò)程計(jì)算每個(gè)頂點(diǎn)的low值:Low[u]=Min{dfn[u],Min{low[w]|w是u的一個(gè)子女},min{dfn[v]|(u,v)是一條回邊} }在回退過(guò)程計(jì)算頂點(diǎn)的low值0123456789(a)前進(jìn)回退頂點(diǎn)0123456789dfn54312678109low510low19low16low16low16第一棵子樹(shù),回退順序0,1,2,4,3第二棵子樹(shù),回退順序8,9,7,6,5頂點(diǎn)u是關(guān)節(jié)點(diǎn)的充要條件:u是根,且有2個(gè)以上的子女u不是根,但存在一個(gè)子女w,使得low[w]>=dfn[u]01234(c)123
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030中國(guó)航空物流產(chǎn)業(yè)發(fā)展趨勢(shì)及市場(chǎng)機(jī)遇分析報(bào)告
- 2025-2030中國(guó)自動(dòng)駕駛技術(shù)市場(chǎng)商業(yè)化路徑及法規(guī)障礙與投資回報(bào)分析報(bào)告
- 電力系統(tǒng)自動(dòng)化工程成本控制合同
- 核反應(yīng)堆堆芯監(jiān)測(cè)工程師合同
- 美術(shù)面試題目及答案解析
- 太陽(yáng)鏡基礎(chǔ)知識(shí)培訓(xùn)課件
- 銀行普法考試試題及答案
- 結(jié)構(gòu)面試題目及答案
- 銀行法律考試題庫(kù)及答案
- 銀行常見(jiàn)筆試題目及答案
- 單位開(kāi)立賬戶的申請(qǐng)書(shū)
- 《嘗試教學(xué)法》課件
- 5G系統(tǒng)消息-一紙禪
- 水下爆破實(shí)現(xiàn)施工方案
- 威斯敏斯特小要理問(wèn)答
- 醫(yī)院院長(zhǎng)任職期間履行經(jīng)濟(jì)責(zé)任情況的述職報(bào)告
- 琉璃瓦屋面分項(xiàng)工程質(zhì)量檢驗(yàn)評(píng)定表
- HAUNI-KLD-2烘絲機(jī)設(shè)備結(jié)構(gòu)
- GB/T 41605-2022滾動(dòng)軸承球用氮化硅材料室溫壓痕斷裂阻力試驗(yàn)方法壓痕法
- 天津高考語(yǔ)文卷各題型思路要點(diǎn)提示
- ktv轉(zhuǎn)讓標(biāo)準(zhǔn)合同范本(3篇)
評(píng)論
0/150
提交評(píng)論