數(shù)據(jù)結(jié)構(gòu)與算法_第1頁(yè)
數(shù)據(jù)結(jié)構(gòu)與算法_第2頁(yè)
數(shù)據(jù)結(jié)構(gòu)與算法_第3頁(yè)
數(shù)據(jù)結(jié)構(gòu)與算法_第4頁(yè)
數(shù)據(jù)結(jié)構(gòu)與算法_第5頁(yè)
已閱讀5頁(yè),還剩24頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

數(shù)據(jù)結(jié)構(gòu)與算法Chapter10圖--1圖的基本概念一個(gè)圖G=(V,E)是一個(gè)由非空的有限集V和一個(gè)邊集E所組成的。若E中的每條邊都是結(jié)點(diǎn)的有序?qū)Γ╲1,v2),就說(shuō)該圖是有向圖(directedgraph,digraph)。若E中的每條邊是兩個(gè)不同結(jié)點(diǎn)有序?qū)Γ驼f(shuō)該圖是無(wú)向圖,其邊仍表示成(v1,v2)12435678頂點(diǎn)邊3124356781{v1,v2,v3,v4,v5,v6,v7,v8}{(v1,v2)(v1,v3)(v2,v3)(v2,v5)(v2,v4)(v3,v5)(v4,v5)(v4,v6)(v4,v7)(v5,v7)(v5,v8)(v6,v7)(v7,v8)}無(wú)向圖圖的表示12435678有權(quán)圖9060120502004011016070758018012435678頂點(diǎn)弧1{v1,v2,v3,v4,v5,v6,v7,v8}{<v1,v2><v1,v3><v2,v4><v2,v5><v3,v2><v3,v5><v4,v6><v4,v7><v5,v4><v5,v7><v5,v8><v7,v6><v7,v8>}有向圖完全圖:n個(gè)節(jié)點(diǎn)的圖中,若是無(wú)向圖,有n(n-1)/2條邊;若是有向圖,有n(n-1)條邊。權(quán):圖中邊或弧上的值。鄰接頂點(diǎn):有邊或弧相連的頂點(diǎn)。頂點(diǎn)的度:頂點(diǎn)所連接的邊或弧的數(shù)量,稱(chēng)為該頂點(diǎn)的度。指向頂點(diǎn)的弧的數(shù)量叫入度,由頂點(diǎn)出發(fā)的弧,稱(chēng)為該頂點(diǎn)的出度。圖的基本術(shù)語(yǔ)路徑與回路:鄰接頂點(diǎn)所形成序列稱(chēng)為路徑。路徑長(zhǎng)度:無(wú)權(quán)圖上,路徑上邊的數(shù)目稱(chēng)為路徑長(zhǎng)度;有權(quán)圖上,路徑上邊的權(quán)重之和為路徑長(zhǎng)度?;芈?環(huán):如果路徑的起點(diǎn)和終點(diǎn)相同,則稱(chēng)此路徑為回路或環(huán)。簡(jiǎn)單路徑:路徑上無(wú)重復(fù)頂點(diǎn)的路徑。連通:若圖上兩個(gè)頂點(diǎn)之間有路徑,則稱(chēng)為這兩點(diǎn)是連通的。連通圖:若圖上任意兩點(diǎn)都是連通的,則為連通圖。非連通圖:圖上存在節(jié)點(diǎn)之間不連通的頂點(diǎn),則為非連通圖。連通分量:非連通圖的極大連通子圖稱(chēng)為連通分量。圖的基本術(shù)語(yǔ)圖的操作圖的建立頂點(diǎn)定位取頂點(diǎn)值求頂點(diǎn)的第一鄰接點(diǎn)及求下一鄰接點(diǎn)插入新頂點(diǎn)及刪除頂點(diǎn)插入一條弧或刪除一條弧遍歷圖(廣度優(yōu)先/深度優(yōu)先)圖的表示—鄰接彈矩陣設(shè)圖G嚴(yán)=待(粒V,昏E篩),V栗=枝{宴0,1,…,n-竄1績(jī)}則表側(cè)示G的鄰接唯矩陣A是其茫元素梨按下警式定康義的n*n矩陣:無(wú)向靈圖:有向俗圖:帶權(quán)童的有培向圖添:V3V1V4V5V2G2V1V3V4V2G101100000000110000101010101010111010001100126543545983516∞3∞∞∞1∞∞5∞3∞∞∞∞4∞∞98∞∞∞∞6∞∞5∞∞∞∞∞∞∞5有向貪圖G1無(wú)向串圖G2有向網(wǎng)311例:圖類(lèi)壩型變惜量:Mg誼ra亭phG寺;頂點(diǎn)茶個(gè)數(shù)襖:G.宿ve薪xn盯um弧/邊的里個(gè)數(shù)共:G.奶ar吸c(diǎn)n稈um圖的類(lèi)培型:G.檔ki餐nd=(DG姓,D載N,示AG季,A巡壽N)頂點(diǎn)i信息找:G.廁ve社x[i索]頂點(diǎn)i和頂小點(diǎn)j鄰接勤關(guān)系乓:G.棉ar報(bào)cs[i嬌][具j]皆.ad墨j弧/邊附銳加信倦息:G.宋ar懸cs[i桑][好j]思.in鈔fo12Ty果pe撐de緣瑞fst斃ru扯ctgr附ap刮h{TNo膛Ed除ge;in休tVe打rt儲(chǔ)ic附es沾;T豎**楊A(yù);}G釘ra呀ph清;Vo賓idCr索ea微te僚Gr露ap根h(G漠ra停ph賺*抄g,in貨tn,摸Tno或ed臉ge){in粘tI,棋j;g-苦>No誓Ed幟ge=no綿ed僚ge;g-扶>V云er魯ti誘ce浴s=贊n;g-絨>A充=(果T*豪*)ma席ll津oc(n購(gòu)*si鍵ze厭of(T惰*)伴);fo節(jié)r(筋i=青0;雄i<n;宣i++粘){g-辯>A喝[i左]=防(T圍*)ma描ll暢oc(n季*si冷ze現(xiàn)of(T近))份;fo有r(就j=患0;惱j<n;梯j++基)g-慕>A沉[i倡][遭j]制=no隊(duì)ed信ge;g-彩>A兔[i咐][雖i]啦=0炊;}}建立讓鄰接竿矩陣BO仙OL誘A牛dd曬(G把ra惡ph磚*既g,in導(dǎo)tu,in達(dá)tv,枯T探w布){in馳tn=血g-圾>V撲er蛛ti幸ce考s;if服(u艇<0牲||僅v<靠0|杯|u托>n伯-1水||艦u=煮=v后||凝g-層>A券[u擠][診v]揀!=起g-紹>No航Ed毫ge){co放ut<<之“B猴ad具I勾np劃ut阻”;影r走et松ur障n肉FA得LS傻E;}g-竹>A殼[u絡(luò)][皺v]頓=w庸;強(qiáng)re職tu打rn駝T項(xiàng)RU納E;}BO餓OL趁D蜜el汗et怖e(或Gr義ap今h*g且,in凡tu,in險(xiǎn)tv){in致tn=達(dá)g-遼>V磁er捐ti謹(jǐn)ce戚s;if骨(u做<0盤(pán)||立v<印0|城|u窯>n構(gòu)-1港||遇u=歉=v短||舅g-肅>A悟[u售][元v]=伯=g-長(zhǎng)>No參Ed棉ge){co僅ut<<瘦“B炕ad登I判np黃ut凡”;抵r疊et棍ur庸n仁FA斥LS廈E;}g-狠>A陳[u喪][愁v]=g-貝>No滲Ed鮮ge;re穗tu屑rn縫T介RU妖E;}BO味OLEx味is傘t(裂Gr沫ap筆h*g頃,in逃tu,in饑tv){in棍tn=要g-活>V珍er甜ti堤ce系s;if據(jù)(u稍<0改||竹v<房誠(chéng)0|丈|u緒>n事-1皂||這u=撓=v封||訂g-賤>A付[u盈][販v]軍!=望g-高>No案Ed你ge)re帽tu游rnFA押LS吳E;re局tu存rnTR摟UE鐵;}插入糠、刪遠(yuǎn)除和尼搜索慢運(yùn)算圖的表示—關(guān)聯(lián)素矩陣關(guān)聯(lián)擴(kuò)矩陣抱用來(lái)膜表示先圖中伶邊與婦頂點(diǎn)言相關(guān)昌聯(lián)的探矩陣睬,有腎向圖G=(V,猜E)的壩關(guān)聯(lián)寺矩陣嫌是如械下定葬義的n*m的矩特陣圖的表示—鄰接捆表表躍示法為每叉一個(gè)怖頂點(diǎn)迷建立籍一個(gè)謙單鏈次表單鏈表探中的輩每一鎮(zhèn)個(gè)結(jié)恩點(diǎn)指稼示u的一勉個(gè)相院鄰結(jié)忌點(diǎn)Adj纏Ve典x表示u的一寧個(gè)相惱鄰結(jié)昨點(diǎn),Ne男xt草Ar輕c指向u的下套一個(gè)堆邊結(jié)午點(diǎn),In殼fo用來(lái)袖存儲(chǔ)軟邊的帥權(quán)值頂點(diǎn)結(jié)村點(diǎn)中至,Da離ta用來(lái)固存儲(chǔ)升相關(guān)征信息覽,F(xiàn)i碰rs世tA皆rc指向u的第蠅一個(gè)菌邊結(jié)雪點(diǎn)AdjVexNextArcInfo帶權(quán)的邊結(jié)點(diǎn)DataFirstArc頂點(diǎn)結(jié)點(diǎn)v1

v2

v3

v4

2130^^^有向圖G1鄰接表0123無(wú)向奮圖G2鄰接鹽表v5

v1

v2

v3

v4

314243202101^^^^^01234V3V1V4V5V2G2V1V3V4V2G1Ty冠pe儀de才fst扮ru挺cten持od朋e{in房誠(chéng)tAd境jV師ex;T冒w;st京ru番cten嘩od尋e*Ne株xt諸Ar六c;}Typ上ed擠efst棋ru渡ctgr噴ap丟h{in傘tVe關(guān)rt蘭ic夫es亞;EN趕od粱e**祖A;}G熟ra糕ph勤;Vo防idCr子ea胃te臉Gr尼ap枕h(G流ra黑ph盲*搏g,in也tn){in抱tI;g-可>V掘er姑ti柿ce些s=林n;g-炒>A適=(En談od衰e**柴)ma音ll榮oc(n撤*si辟ze僅of(En諸od眨e*)排);fo沸r(研i=快0;搖i<n;鉗i++摘)g-澆>A覽[i撕]=業(yè)NU雪LL蘆;}建立現(xiàn)鄰接凳表18En斷od宏e*Ne炮wN斷od犬e(in功tve想x,系T尸w比ei瞇gh混t,En秋od杠e*ne遇xt特ar偶c){En柿od犧e*p耐;p=誕(En踏od怕e*)ma嫌ll暮oc(si君ze胞of(EN蛇od襲e))脾;p-毒>Ad炎jV愧ex=v番ex須;句p-伐>W泄=w略ei辟gh秒t;p-拔>Ne折xt陪Ar茄c=ne儲(chǔ)xt泉ar惠c;re倦tu看rn慢p椒;}BO疾OL刮E浮xi脊st陶(G錯(cuò)ra雖ph備g俱,in伴tu,in適tv){in峰tn;En撿od仿e*p朝;n=g.滑Ve仔rt修ic別es;if樂(lè)(u滲<0犬||角u>雞n-貴1)司r遍et抱ur勒n押FA尿LS擊E;fo的r(裳p=g.已A[u搭];任p線&&君p-導(dǎo)>Ad恢jV咽ex!=較v;斥)幫p=趕p-浩>Ne騾xt放Ar粘c;if降(!諷p)榴r北et淚ur頂n錯(cuò)FA張LS嚇E;re鞋tu墊rn獲T倡RU慘E;}操作雨函數(shù)BO林OL物A先dd絮(G該ra庫(kù)ph外g兆,in絨tu,in經(jīng)tv,陵T獄w呀){in予tn;En刷od視e*p尚;n=g.地Ve威rt辜ic層es;if膝(u丸<0我||繁u>暮n-際1|拿|v并<0徒||腹v>抽n-小1|倚|u濫==桶v|炭|E割xi今st請(qǐng)(*g,筒u,末v))恥{co崖ut<<俱“B堡ad蠢I錦np拒ut抄”;捕r候et簽ur宇n貼FA丟LS稿E;}p=Ne擁wE通No管de(v,漲w,箱g->許A[懇u]擦);落g能->驗(yàn)A[墻u]林=p紫;re蜻tu厚rn街T皺RU姥E;}BO題OL尺D比el規(guī)et斃e(英Gr羨ap欣h授g,in蒜tu,in乒tv){in印tn=律g-隊(duì)>V脖er惜ti若ce半s;En夠od寶e*p竟,*盾q;if碰(u免>-迅1&愁&u鈔<n快){p=牛g-慈>A貿(mào)[u贊];號(hào)q=西NU弊LL當(dāng);wh桃il霧e(葛p&疑&p能->Ad宵jV攜ex!=絕v)純{q=社p;籃p蘇=p輔->Ne肌xt沾Ar劇c;}if摧(p風(fēng)){if沸(q傘)馳q-雀>Ne份xt峽Ar返c=p諸->Ne趨xt行Ar辟c;el軟se六g限->氣A[伐u]蠟=p砍->Ne輪xt行Ar需c;fr抱ee恩(p萬(wàn));籌r雅et積ur殺n篩TR缺UE言;}}co愁ut<<好“B骨ad柄I脖np攤ut蒜”;錦r裹et瞧ur甚n哈FA昨LS吹E;}操作殲函數(shù)例:圖類(lèi)圓型變湖量:AL宏gr臘ap聯(lián)hG紙;頂點(diǎn)饑個(gè)數(shù)蛾:G.漲ve贏xn鐵um圖的類(lèi)限型:G.栽ki尋nd=(D胞G,臥DN瀉,A蘭G,暈AN職)頂點(diǎn)i信息替:G.兔ve午rt掃ic煌es[i乒].旅da瞞da頂點(diǎn)i的第砍一個(gè)窩鄰接符點(diǎn):G.慢ve絨rt萄ic穗es[i悲].fi體rs結(jié)ta精rc->ad廊jv攝exG.雷ve震rt甲ic賣(mài)es[G.景ve流rt漿ic帽es[i覽].fi獻(xiàn)rs惱ta壘rc->ad蹈jv撲ex].毀da歌taG.銀ve勺rt亭ic抹es[i霉].fi沒(méi)rs秋ta鎖rc->桌in街fo頂點(diǎn)i的第浙二個(gè)坊鄰接歡點(diǎn):G.這ve每rt峽ic績(jī)es[i醋].fi李rs隨ta晶rc->ne臭xt己ar槳c->ad敘jv訴ex圖的遍歷算法深度優(yōu)先搜索DFS(Depth-Firstsearch)廣度優(yōu)先搜索BFS(Breadth-Firstsearch)圖的遍歷確定匙遍歷餃起點(diǎn)為保逢證非旱連通頌圖的聚每一偶頂點(diǎn)征都能末被訪恥問(wèn)到墻,應(yīng)半輪換壤起點(diǎn)為避恒免頂謙點(diǎn)的悶重復(fù)盾訪問(wèn)形,做致訪問(wèn)喪標(biāo)記遍歷科圖注歐意問(wèn)旁題:深度鏈優(yōu)先晨搜索DF侵S(膛De腎pt綿h-狂Fi絲式rs黃t膽s渡ea織rc雁h)首先穿訪問(wèn)宏起點(diǎn)險(xiǎn),然辭后依神次訪溉問(wèn)與戴該起臭點(diǎn)相描關(guān)聯(lián)筍的每彩一個(gè)頂點(diǎn)純,并它以該棟關(guān)聯(lián)沈頂點(diǎn)怖為新扒的起臂點(diǎn),現(xiàn)繼續(xù)姐深度端優(yōu)先劫遍歷益。若圖中塊還有誕未被劃訪問(wèn)啞的頂目點(diǎn),裁則換澇一個(gè)充起點(diǎn)弊,繼喉續(xù)深取度優(yōu)組先遍歷;屯直到響所有腸的頂薦點(diǎn)都菌被訪文問(wèn)。V1V2V3V4V5V6V7V8無(wú)向圖G3V1V2V3V4V5V6V7V8有向圖G4V1,V3,V6,V7,V2,V4,V8,V5V1,V2,V4,V8,V5,V3,V6,V723深度曲優(yōu)先石遍歷柳:Vo窮id光D勉FS員(G首ra獸ph粱g嚴(yán),in碼tv,辰B猶OO雅L綁*v理is沒(méi)it河ed女){En餓od葵e*w魯;vi需si模te烤d[坑v]惑=T慶RU攝E;pr竊in盒tf(“慰%d御”,掉v庫(kù));fo脊r陡(w士=g.躲A[v膨];乎w起;凈w=畜w-原>Ne狂xt掩Ar憤c)if鑄(v米is欲it誰(shuí)ed印[w咬->Ad幻玉jV遠(yuǎn)ex])壁D傭FS戶(hù)(g陽(yáng),令w-購(gòu)>Ad味jV寸ex,戚vi籠si性te洗d)廊;}Vo貿(mào)idTr態(tài)av繡er唇sa枯l_枕DF碗S(G夕ra嗎ph棚g效){BO妄OL禍v悉is撲it恐ed斃[Ma溪xS化iz膛e];in投ti,產(chǎn)n聽(tīng)=g.畝Ve俗rt段ic隆es;fo網(wǎng)r(廉i=鄰0;轟i<n;巨i++惜)能vi安si拒te著d[茫i]撐=F篇AL崖SE箭;fo移r(手i=趴0;懸i<n;陰i++駱)if恩(!絞vi殊si充te紙d[哀i]牽)轉(zhuǎn)DF挑S(g,飲i,帖vi矛si涂te翼d);}v13v2v3v4v54422123010101234^^無(wú)向圖G2鄰接表V3V1V4V5V2G2圖G2的深絲式度優(yōu)術(shù)先遍批歷結(jié)碎果:V1,V4,V3,V5,V224廣度香優(yōu)先何搜索BF湊S寇(B圍re葬ad淘th甜-F疼ir租st豎se勸ar鉛ch倆)V1V2V3V4V5V6V7V8無(wú)向圖G3V1V2V3V4V5V6V7V8有向圖G4V1,V2,V3,V4,V5,V6,V7,V8V1,V2,V3,V4,V5,V6,V7,V8首先均訪問(wèn)臥起點(diǎn)閑,依角次訪線問(wèn)與松該起糟點(diǎn)相詳關(guān)聯(lián)拍的每學(xué)一個(gè)鄰接央點(diǎn),然稍后分包別從唉這些打鄰接抹點(diǎn)出童發(fā)訪動(dòng)問(wèn)它沿們的買(mǎi)鄰接愿點(diǎn),肆并使“先被訪問(wèn)失的頂膛點(diǎn)的么鄰接螺點(diǎn)”先于“后被爐訪問(wèn)董的頂李點(diǎn)的晶鄰接部點(diǎn)”被訪問(wèn),若赤圖中貓還有查未被碧訪問(wèn)餅的頂私點(diǎn),教則換宿一個(gè)愚起點(diǎn)丙,繼餅續(xù)廣度脈優(yōu)先遍歷沈;直獲到所惕有的握頂點(diǎn)已都被秘訪問(wèn)粒。25#i腦nc畢lu滿de沈“qu之eu螺e.被h”Vo班id沉B筋FS川(G租ra姿ph畢g及,晶T確v,五B盲OO稿L競(jìng)*v要is沙it看ed凳){En肚od摘e*w頭;炕T麻u;孕Q羨ue懼ue陣q推;Cr治ea械te謊Qu淋eu議e(&見(jiàn)q,Ma李xN崖um單Ve竭rt歡ic白es);vi毒si創(chuàng)te樓d[請(qǐng)v]厘=T父RU礦E;pr鑒in陜tf(“賀%d拌”,智v向);Ap畫(huà)pe佩nd草(&槐q,骨v展);wh寫(xiě)il脫e(占!Is詠Em局pt裹y(q號(hào)))卻{Qu刻eu勿eF況ro衡nt(q兼,緣瑞&u頌);貝S劑er婆ve巴(&馳q)賤;fo世r(忘w=g.編A[u遭];世w苦;抖w=遍w-踩>Ne奮xt裹Ar慰c)if令(!苗vi濟(jì)si歲te曲d[服w-勿>Ad雨jV或ex])棋{pr胖in陷tf(“匠%d違”,弟w-窯>Ad貪jV昌ex);vi罪si杠te沙d[貧w-友>Ad帥jV慌ex]=闊TR晨UE隊(duì);Ap速pe弦nd桐(&扁q,傍w繭->Ad叼jV墨ex);}}}Vo納idTr丘av芒er卸sa怎l_磨BF零S(G截ra輪phg){BO事OL撤v朽is爛it換ed陪[Ma星xS逝

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論