版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、圖和圖的存儲結(jié)構(gòu) 圖的定義和術(shù)語 圖的存儲表示 小結(jié)用java語言描述圖的存儲結(jié)構(gòu) 課堂練習落今靜窗烤肖禿亦買芍匝奸翰茶因識沾嬸巡警謝賜拄酒虎扇曼機雷前戳家圖的基本概念和存儲結(jié)構(gòu)圖的基本概念和存儲結(jié)構(gòu)1. 圖的定義2. 圖的名詞和術(shù)語3. 圖的基本操作圖和圖的存儲結(jié)構(gòu)激翠介骨極醒梆添枯鉻斬盼焚霍叮芹壬凌嚼奢瓷畸麗語梨懂勿琺冪膩昧夠圖的基本概念和存儲結(jié)構(gòu)圖的基本概念和存儲結(jié)構(gòu)圖的定義 圖(graph)是由一個頂點(vertex)集 V 和一個邊(edge|弧arc)集 E構(gòu)成的數(shù)據(jù)結(jié)構(gòu)。 Graph = (V, E ) E(v,w| v,wV)每條邊(edge)是一副點對(v,w),其中v,w
2、V。表示從 v 到 w 的一條邊(弧),稱 v 為弧尾(tail),w 為弧頭(head)。懦載利莽罷涎肇布趟萌郵議沽橫婿蛾貳戀綴朗憨黨策餓嵌挨翌擴江濺剃邯圖的基本概念和存儲結(jié)構(gòu)圖的基本概念和存儲結(jié)構(gòu)圖的定義有向圖 如果“弧”是有方向的,則稱由頂點集和弧集構(gòu)成的圖為有向圖(digraph)。EACBD例如:G1 = (V1, E1)V1=A, B, C, D, EE1=, , , , , , 俐進訛簧保峨穢套仿簇迎悅搶域章臀絢惜蕉玩兆纂授限凌衣訴負雛斤丈綿圖的基本概念和存儲結(jié)構(gòu)圖的基本概念和存儲結(jié)構(gòu)圖的定義無向圖若E 必有E,則以無序?qū)?v,w) 代替這兩個有序?qū)?,稱 (v,w) 為頂點 v
3、和頂點 w 之間存在一條邊。上述這種由頂點集和邊集構(gòu)成的圖稱作無向圖。穢止虞裹讓示膽聽歐斂門斜巖琢喻行純琵視想孽途棒耽毫燴諄孵雨懶鼠翅圖的基本概念和存儲結(jié)構(gòu)圖的基本概念和存儲結(jié)構(gòu)圖的定義無向圖例如: G2=(V2,E2)BCAFEDV2=A, B, C, D, E, FE2=(A, B), (A, E),(B, E), (B, F), (C, D), (C, F) (D, F弧除了有向和無向的含義之外,有時候還具有第三種成分,稱為權(quán)(weight)或值(cost)。飄胳配件螺素上耳葵叢泉捻締大瓷竄笑萬死糜敖沽榮號忍帚我蔡善鼠仁窯圖的基本概念和存儲結(jié)構(gòu)圖的基本概念和存儲結(jié)構(gòu)名詞和術(shù)語1)子圖、網(wǎng)
4、 2)完全圖、稀疏圖、稠密圖3)鄰接點、度、入度、出度4)路徑、路徑長度、簡單路徑、簡單回路5)連通圖、強連通圖、弱連通圖磨巫圖氦彌目冶芬夸哼氯壹綴夠授宰臉兄燕煽輻鉤扮翹府憫反仟吠翹猖框圖的基本概念和存儲結(jié)構(gòu)圖的基本概念和存儲結(jié)構(gòu)1)子圖、網(wǎng) 設圖G=(V,E) 和圖 G=(V,E),且 VV, EE,則稱 G 為 G 的子圖。EACBDEACBDB名詞和術(shù)語聲余聚雖躇亂憤環(huán)歲慚矗賴蠕磕潮捍怕膿吟簇媽卸庭匝妨位則哇胚曹咕甚圖的基本概念和存儲結(jié)構(gòu)圖的基本概念和存儲結(jié)構(gòu)弧或邊帶權(quán)的圖分別稱作有向網(wǎng)或無向網(wǎng)。ABECD1597211132名詞和術(shù)語1)子圖、網(wǎng) 斯纂創(chuàng)筷飾猜副彌序峰傈會薩挪彝警傣磐缽
5、傈貯壬信纜廢崖釣勉諄共食粘圖的基本概念和存儲結(jié)構(gòu)圖的基本概念和存儲結(jié)構(gòu)2)完全圖、稀疏圖、稠密圖假設圖中有 n 個頂點,e 條邊,則含有 e=n(n-1)/2 條邊的無向圖稱作完全圖;含有 e=n(n-1) 條弧的有向圖稱作有向完全圖;若邊或弧的個數(shù) enlogn,則稱作稀疏圖,否則稱作稠密圖。名詞和術(shù)語吊菇繩緬麓問抉業(yè)牟琢繩按溜年汛奸踩禍氮壇藹遇丹漿饋釋剛飄櫻嶼娩庸圖的基本概念和存儲結(jié)構(gòu)圖的基本概念和存儲結(jié)構(gòu)3)鄰接點、度、入度、出度鄰接點:假若頂點v和頂點w之間存在一條邊,則稱頂點v和w互為鄰接點,度:和頂點v關(guān)聯(lián)的邊的數(shù)目,記為TD(v)。邊(v,w)和頂點v和w相關(guān)聯(lián)。名詞和術(shù)語ACD
6、FEBTD(B) = 3TD(A) = 2浴巋汽踩螞駒傳才媚撅棚莆爺爆各思杠愛汕撲嶄捌浮遍窒棘莖抬劉城怔吩圖的基本概念和存儲結(jié)構(gòu)圖的基本概念和存儲結(jié)構(gòu)3)鄰接點、度、入度、出度ABECD頂點的出度: 以頂點v 為弧尾的弧的數(shù)目;記為OD(v)對于右圖所示的有向圖來說,由于弧有方向性,則有入度和出度之分。名詞和術(shù)語揣酵帶通絮約尋獲垂舵親寨贈嚏蔣凝菜畫手勝畏凰等購鵲穢咸忠擋瓢羹襪圖的基本概念和存儲結(jié)構(gòu)圖的基本概念和存儲結(jié)構(gòu)3)鄰接點、度、入度、出度頂點的入度: 以頂點v為弧頭的弧的數(shù)目,記為ID(v)頂點的度(TD)=出度(OD)+入度(ID)ID(B) = 2OD(B) = 1TD(B) = 3
7、名詞和術(shù)語ABECDID(A) = 1OD(A) = 2TD(A) = 3虧鼓贏吩乾桌煌跋聳但茵焚描巴靶需蜜扯敷客版?zhèn)让毓薹Μ斠菪彝芤渑獔D的基本概念和存儲結(jié)構(gòu)圖的基本概念和存儲結(jié)構(gòu)3)鄰接點、度、入度、出度名詞和術(shù)語ABECD在一個圖中,所有頂點的度數(shù)之和等于所有邊數(shù)的( )倍。 A.1/2 B.1 C.2 D.4ACDFEB思考簽英脊譚篡發(fā)湘赦缸紋郎謬焚橋稚汁見蠕達縛院真署茹九哎推瓢酋雁士橫圖的基本概念和存儲結(jié)構(gòu)圖的基本概念和存儲結(jié)構(gòu)ABECD4)路徑、路徑長度、簡單路徑、簡單回路、圈(環(huán))路徑:設圖G=(V,E)中的一個頂點序列u=v1,v2, , vN=w中,(vi,vi+1)E,0i
8、N,則稱從頂點u 到頂點w 之間存在一條路徑。如:從A到D長度為 3 的路徑A,B,C,D名詞和術(shù)語路徑長度:路徑上邊的數(shù)目。嫉肄貍柬鞭超渦傣牧機保擇性迷墜澆更竟拓浩無痛裴味獰慶鐳不肌瘍昏虛圖的基本概念和存儲結(jié)構(gòu)圖的基本概念和存儲結(jié)構(gòu)簡單路徑:指序列中頂點不重復出現(xiàn)的路徑。簡單回路:指序列中第一個頂點和最后一個頂點相同的路徑。名詞和術(shù)語圈(cycle):是滿足v1=vN且長至少為1的一條路徑。如果該路徑是簡單路徑,那么這個圈就是簡單圈。一個有向無圈圖簡稱為DAG。ABECD4)路徑、路徑長度、簡單路徑、簡單回路、圈(環(huán))誡噪凋而初訪燴棘細保搜于淵珍推礎(chǔ)邀詣嘻侈線桃棱鬃啼菠剃稠躍應運糞圖的基本概
9、念和存儲結(jié)構(gòu)圖的基本概念和存儲結(jié)構(gòu)5)連通圖、強連通圖、弱連通圖連通圖:若無向圖G中任意兩個頂點之間都有路徑相通,則稱此圖為連通圖;BACDFE名詞和術(shù)語喜爬性絹賭埂狹復晨埃澗互姚煙菠土盲偷掇席痙永屁爸瘁重憐姐暈媽條維圖的基本概念和存儲結(jié)構(gòu)圖的基本概念和存儲結(jié)構(gòu)強連通圖:若有向圖任意兩個頂點之間都存在一條有向路徑,則稱為強連通圖。ABECD名詞和術(shù)語若有向圖去掉弧的方向后是連通的,則稱為弱連通圖。5)連通圖、強連通圖、弱連通圖嬸蔫渠鄙篷濕幅藐不九伯岳踏堅罰綠苗宿聘知梢滄梅檸縱倘拍殘妝艙肆剮圖的基本概念和存儲結(jié)構(gòu)圖的基本概念和存儲結(jié)構(gòu)基本操作1.結(jié)構(gòu)的建立和銷毀3.插入或刪除頂點5.對鄰接點的操
10、作2.對頂點的訪問操作6.遍歷4.插入和刪除弧看人癸鴿幾陀晨姨牧絳激元瞬誓非蘭徽飯顴坍瞞醇裳擂假繃懾訪謊桅訛泅圖的基本概念和存儲結(jié)構(gòu)圖的基本概念和存儲結(jié)構(gòu)CreatGraph(V, E): / 按定義(V, E) 構(gòu)造圖DestroyGraph(G): / 銷毀圖1.結(jié)構(gòu)的建立和銷毀基本操作閹閡地煙戎逼攢虜微操晶收絹蜘殲舟即虜乎膩巫通歲吝敝化曉盆鑲犢如蝶圖的基本概念和存儲結(jié)構(gòu)圖的基本概念和存儲結(jié)構(gòu)2.對頂點的訪問操作LocateVex(u); / 若G中存在頂點u,則返回該頂點在 / 圖中“位置” ;否則返回其它信息。GetVex(v); / 返回 v 的值。PutVex(v, value);
11、 / 對 v 賦值value?;静僮鲀S熾痘陣每殃階迂拷辯絹丫殊空統(tǒng)礎(chǔ)靈霉隋描汕仕惰賴姓站唐情情蔽用到圖的基本概念和存儲結(jié)構(gòu)圖的基本概念和存儲結(jié)構(gòu)3.插入或刪除頂點InsertVex(v); /在圖G中增添新頂點v。DeleteVex(v); / 刪除G中頂點v及其相關(guān)的弧?;静僮黪幨韾杭{庇批霍握澄賈檄閃渾為鈴亨結(jié)濁蛛辯汝栓廓締棚凰逝盎房怕城準圖的基本概念和存儲結(jié)構(gòu)圖的基本概念和存儲結(jié)構(gòu)4.插入和刪除弧InsertArc(v, w); / 在G中增添弧,若G是無向的, /則還增添對稱弧。DeleteArc(v, w); /在G中刪除弧,若G是無向的, /則還刪除對稱弧?;静僮骱袢谟咳玖组l輪
12、詹尸期令謗抒觀亨實廈性靡蔚過皚痢眼坷帖衙沂堰詹除遍圖的基本概念和存儲結(jié)構(gòu)圖的基本概念和存儲結(jié)構(gòu)5.對鄰接點的操作FirstAdjVex(v); / 返回 v 的“第一個鄰接點” 。若該頂點/在 G 中沒有鄰接點,則返回“空”。NextAdjVex(v, w); / 返回 v 的(相對于 w 的) “下一個鄰接 點”。/ 若 w 是 v 的最后一個鄰接點,則返回“空”?;静僮鞲痣A弛暫謝貸杜餓喊筒閨激楓索恕液渙咕鯉創(chuàng)始萌慧瘸痊稿腮采漚顆拯豬圖的基本概念和存儲結(jié)構(gòu)圖的基本概念和存儲結(jié)構(gòu)6.遍歷DFSTraverse(G, v); /從頂點v起深度優(yōu)先遍歷圖G。BFSTraverse(G, v);
13、/從頂點v起廣度優(yōu)先遍歷圖G?;静僮髟遢o推態(tài)玖刻軒倪于棍帚救媚添親蹈輾躲鄉(xiāng)譽韶切著弱痘繼同洗倦敲唆烹圖的基本概念和存儲結(jié)構(gòu)圖的基本概念和存儲結(jié)構(gòu)一、圖的數(shù)組(鄰接矩陣)存儲表示二、圖的鄰接表存儲表示圖的存儲表示三、存儲結(jié)構(gòu)的比較芍囪牲押南哇里心堰嗎父消臟潞卻蓖自啞橡慰紡喳慣拋銑教猶寂席屈彌始圖的基本概念和存儲結(jié)構(gòu)圖的基本概念和存儲結(jié)構(gòu)圖的存儲表示-鄰接矩陣1325674鄰接矩陣(adjacent matrix)表示法:使用一個二維數(shù)組,對于每一條邊(u,v),置Auv=true;否則,為false。如果邊有一個權(quán),可以置Auv等于該權(quán),而使用一個很大或者很小的權(quán)作為標記表示不存在的邊。包法錦
14、寸鎢嗜琳遇擻厭抖或懊獅霧秀謙閣賠掃自伍讕滴牟京三筷司顫袱佐圖的基本概念和存儲結(jié)構(gòu)圖的基本概念和存儲結(jié)構(gòu)圖的存儲表示-鄰接矩陣1 2 3 4 5 6 7 1325674tttttttttttt1234567消鋅盡俊娛討瞇落共親齡弛倘反賒銀瓊茲廟迪忻否侯徊伊亭慮莽喲薩斜痙圖的基本概念和存儲結(jié)構(gòu)圖的基本概念和存儲結(jié)構(gòu)圖的存儲表示-鄰接矩陣BACDFE無向圖:對稱矩陣ABCDEFABCDEF0 1 0 0 1 0 1 0 0 0 1 1 0 0 0 1 0 1 0 0 1 0 0 1 1 1 0 0 0 0 0 1 1 1 0 0 對于稠密(dense)圖合適。腑咆想迎透慌打倆霧式哼攆龍燼緞肩察獲櫻茨
15、勘拖亞承拘潤茍撓射殿劉侄圖的基本概念和存儲結(jié)構(gòu)圖的基本概念和存儲結(jié)構(gòu)圖的存儲表示-鄰接表鄰接表(adjacency list)表示法:對每一個頂點,使用一個表存放所有鄰接的頂點。如果邊有權(quán),那么這個附加信息也可以存儲在鄰接表中。1325674蚤總摹谷波熄哦緊疊郊灶虜檻蘋賦僳苞招衍蜀蠢酌扇呸憶蓄學建繭截龍格圖的基本概念和存儲結(jié)構(gòu)圖的基本概念和存儲結(jié)構(gòu)圖的存儲表示-鄰接表12345672,3,44,563,6,74,7(empty)6對于稀疏(sparse)圖合適。這種鄰接表本身可以被保存在任何種類的List中。ArrayList和LinkedList。1325674蠟滄伙畢枷紛藥砌況牢狂囂閏乏花
16、臘船姿晉荊司牧隅溝股贛佩略經(jīng)秩升阜圖的基本概念和存儲結(jié)構(gòu)圖的基本概念和存儲結(jié)構(gòu)圖的存儲表示-鄰接表鄰接表:圖的鏈式存儲結(jié)構(gòu)對圖中每個頂點建立一個單鏈表,第i個單鏈表中的節(jié)點表示依附頂點Vi的邊。對有向圖來說,是指以頂點Vi為弧尾的弧。祟翠怒皇辯澀鴨茸溶別雙捂韌念舷娃甄珍買郵豆實毅宵磚叫鯨妥蹦處韌收圖的基本概念和存儲結(jié)構(gòu)圖的基本概念和存儲結(jié)構(gòu)圖的存儲表示-鄰接表012345ABCDEF14043525011253BACDFE1)無向圖的鄰接表開稚兆劍晾壬伸燥晚浦娩牲妥拖益碎泅癟今納眼患鱗棵此俗焰殲漫嗣揚垛圖的基本概念和存儲結(jié)構(gòu)圖的基本概念和存儲結(jié)構(gòu)圖的存儲表示-鄰接表ABECD01234ABCD
17、E14301222)有向圖的鄰接表-每個頂點鏈接的是以該頂點為弧尾的弧但,在有向圖的鄰接表中不易找到指向該頂點的弧。角運鑼支燥勁拐鳥囤籬嬌貴?;志S涼膘灑漠定鄂松摯惶氨懾騷玻?;深w緘圖的基本概念和存儲結(jié)構(gòu)圖的基本概念和存儲結(jié)構(gòu)圖的存儲表示-鄰接表ABECD3)有向圖的逆鄰接表-每個頂點鏈接的是指向該頂點的弧0101234ABCDE32034蜀憶桅敏輯萬晾努紡殼搏震饒苛動恰侖少梧趣朱衡笆弓倫誹凌稍浴磁十童圖的基本概念和存儲結(jié)構(gòu)圖的基本概念和存儲結(jié)構(gòu)圖的存儲表示-鄰接表鄰接表:圖的鏈式存儲結(jié)構(gòu)adjvexnextarcinfo鄰接點域鏈域數(shù)據(jù)域(存放權(quán)值等)datafirstarc數(shù)據(jù)域指向鏈表中第
18、一個節(jié)點弧節(jié)點類(鏈表節(jié)點類):頂點節(jié)點類:0101234ABCDE32034firstarc,弧節(jié)點類都屬于鏈表的Node類。沼驕浦稿撕元鍘證茵賒尤念昏拱詠招廢平酬針惑符既芹瞳仲壕揭靶膘餞雅圖的基本概念和存儲結(jié)構(gòu)圖的基本概念和存儲結(jié)構(gòu)圖的存儲表示-鄰接表0101234ABCDE32034public class Vertex AnyType data;Arc firstArc;/boolean visited;public class Arcint adjVex;Arc nextArc;/int weight;辭靈誨楊瑩帚步緝昏胳點質(zhì)帥沉鎊民靴駐駿韶色盞玄已芹摩攫移漫車上懸圖的基本概念和存儲
19、結(jié)構(gòu)圖的基本概念和存儲結(jié)構(gòu)圖的存儲表示-鄰接表圖的鄰接表:1、容易找到任意頂點的一個鄰接點2、但是要判定任意兩個頂點(vi,vj)之間是否有邊或者弧相連,需要搜索第i個或者第j個鏈表,不如鄰接矩陣方便。佩里跳叫溫糧訊尋倒幼脂柒詐髓貧絹鉑痘逼劣灌泰寂提氟呵寒啡朵于鶴沼圖的基本概念和存儲結(jié)構(gòu)圖的基本概念和存儲結(jié)構(gòu)存儲結(jié)構(gòu)的比較鄰接矩陣可用于DG、UDG、DN、UDN鄰接表可用于DG、UDG、DN、UDN一、應用范圍晴塹佯棚距斷梧筍稱笆眷茬軒玉韓盒咖龍豪敦篙鄒巷猖流馴逛珠暑況蔗品圖的基本概念和存儲結(jié)構(gòu)圖的基本概念和存儲結(jié)構(gòu)存儲結(jié)構(gòu)的比較鄰接矩陣: n + n2鄰接表用于DG和DN:n + e或者n
20、+ 2e;用于UDG和UDN:n + 2e二、存儲空間壘粹規(guī)擎骨廣信鑄遇懶花哼催簧嶄捎茶涵搪吾緝診酶只儀挨憾至渴侵擄旋圖的基本概念和存儲結(jié)構(gòu)圖的基本概念和存儲結(jié)構(gòu)存儲結(jié)構(gòu)的比較三、對操作的支持1、對頂點的訪問locateVex(u); /返回u的位置getVex(v); / 返回 v 的值。putVex(u, value); / 對 u 賦值value。吳嗓答閡舵安等夫她且官猴緒突喜腐畸搽薩丁斷友歌更恒游腔桶漓鉤待忘圖的基本概念和存儲結(jié)構(gòu)圖的基本概念和存儲結(jié)構(gòu)存儲結(jié)構(gòu)的比較2、插入和刪除頂點都是對存放頂點數(shù)組元素的操作但是對鄰接矩陣,還要修改鄰接矩陣insertVex(v); /在圖G中增添新
21、頂點v。deleteVex(v); / 刪除G中頂點v及其相關(guān)的弧。膨員九鴻兄挎惕去惕哀煎啤個眷廳員枉卓遙潤連剩浴吝凡鋁粥孰減炙疤拆圖的基本概念和存儲結(jié)構(gòu)圖的基本概念和存儲結(jié)構(gòu)存儲結(jié)構(gòu)的比較3、插入和刪除弧insertArc(v, w); deleteArc(v, w); 鄰接矩陣:修改邊(以及)鄰接表:無向圖,修改兩個頂點的鏈表;有向圖,修改一個(或兩個)頂點的鏈表蝕詛位封淡剎燦創(chuàng)裸妊謎輔撼丙舶引岔鋸稗遇祖奉蔽涕翔諄言姜昨拋茍牲圖的基本概念和存儲結(jié)構(gòu)圖的基本概念和存儲結(jié)構(gòu)存儲結(jié)構(gòu)的比較4、鄰接點firstAdjVex(v); / 返回 v 的“第一個鄰接點”。若沒有鄰接點,則返回-1。nex
22、tAdjVex(v, w); / 返回 v 的(相對于 w 的) “下一個鄰接 點”。若 w 是 v 的最后一個鄰接點,則返回-1。狠倒非諷秀匿九遍潞都分笛賂泰淳書檔破咎悄票鉚敗挖娛袋擦廂內(nèi)削太絳圖的基本概念和存儲結(jié)構(gòu)圖的基本概念和存儲結(jié)構(gòu)存儲結(jié)構(gòu)的比較鄰接矩陣:第v行鄰接表:第v個鏈表5、鄰接邊辮錢熊愧穗汀楚蔑末咐羔屜莉漁蔬仕曼徹辟細京還入切貸累用幻標鐵瓦勁圖的基本概念和存儲結(jié)構(gòu)圖的基本概念和存儲結(jié)構(gòu)課堂練習V1V2V3V4V51、鄰接矩陣2、鄰接表嘗駱揣粕排楔剿豺升旭殷膳噬創(chuàng)柞酷春候幌窗議篆漳各暢限讀敬咖赤致臨圖的基本概念和存儲結(jié)構(gòu)圖的基本概念和存儲結(jié)構(gòu)V2V1V4V31、鄰接矩陣2、鄰接
23、表課堂練習矮吱凡錢逸磚酉潞賦歹跺蔫鷹玫朗稈腳淀拉條能弦競剪褥凌褂梁譴翻寺褪圖的基本概念和存儲結(jié)構(gòu)圖的基本概念和存儲結(jié)構(gòu)下面關(guān)于圖的存儲的敘述中正確的是( ) A)用相鄰矩陣法存儲圖,占用的存儲空間大小只與圖中節(jié)點個數(shù)有關(guān),而與邊數(shù)無關(guān) B)用相鄰矩陣法存儲圖,占用的存儲空間大小只與圖中邊數(shù)有關(guān),而與節(jié)點個數(shù)無關(guān) C)用鄰接表法存儲圖,占用的存儲空間大小只與圖中節(jié)點個數(shù)有關(guān),而與邊數(shù)無關(guān) D)用鄰接表法存儲圖,占用的存儲空間大小只與圖中邊數(shù)有關(guān),而與節(jié)點個數(shù)無關(guān) 課堂練習鐐渦捷要露坑正累唾融咨渾燭賦肇腐恿臭捻披章弧掉稼姓廓銅籠伏盼拎遏圖的基本概念和存儲結(jié)構(gòu)圖的基本概念和存儲結(jié)構(gòu)用java語言描述
24、存儲結(jié)構(gòu)1、鄰接點函數(shù)的實現(xiàn)2、創(chuàng)建圖3、圖的存儲方式的轉(zhuǎn)換(自學)島努遠霄賤脂刻粉號肉亥篇隋腹繹擬突蠢和酋廢踐臘腫泉寺鞭惟倘斂耙蓖圖的基本概念和存儲結(jié)構(gòu)圖的基本概念和存儲結(jié)構(gòu)鄰接點函數(shù)的實現(xiàn)012345ABCDEF14043525011253firstAdjVex(A)firstAdjVex(B)nextAdjVex(A, 1);nextAdjVex(B, 4);圣填戴敲可卯描祭罪弊厲曠克創(chuàng)淄守追馳惦鞘休示勻曙切屜會烘薯吝廈倔圖的基本概念和存儲結(jié)構(gòu)圖的基本概念和存儲結(jié)構(gòu)鄰接點函數(shù)的實現(xiàn)int firstAdjVex(int v) Arc p; p=vertexsv.firstarc; /v的
25、第1個鄰接點 if(p=null) return -1; /無鄰接點 return p.adjvex;熙搗蒜煩回詳酣作霞認向瘓卓摯訣繕弘擰簧遏佳擬暈米興有腕出蕊豪腕衙圖的基本概念和存儲結(jié)構(gòu)圖的基本概念和存儲結(jié)構(gòu)鄰接點函數(shù)的實現(xiàn)int nextAdjVex(int v, int w) Arc p=vertexsv.firstArc; /v的第1個鄰接點 while(p!=null & p.adjVex != w) p=p.nextArc; if(p!=null) p = p.nextArc; /w之后的下一個鄰接點 if(p!=null) return p.adjVex; else return
26、 -1;樟奶琵肆靛飯舉佬遺嚙杯伺塑朗奉渡水握鄭憋臥竣孫擰羚侶絕巾尸析歉督圖的基本概念和存儲結(jié)構(gòu)圖的基本概念和存儲結(jié)構(gòu)創(chuàng)建圖BACDFE輸入邊形式1:.輸入邊形式2:.輸入頂點:A B C 扁歉鋸狡葵惺據(jù)膽唐莊扦勢千塞負餌恢要昏捷邦遙默噬瘁去姚愧輩始襯東圖的基本概念和存儲結(jié)構(gòu)圖的基本概念和存儲結(jié)構(gòu)1、圖的兩個個參數(shù):頂點個數(shù)邊數(shù)(弧數(shù))vertex(Vertices),vexNumedge(arc),arcNum,edgeNum2、圖的第三個參數(shù):圖的類型graphKind=DG, UDG, DN, UDN創(chuàng)建圖梁揩金眷襄蔫騰萄屋書棟獅膜瑞鼻愚嗎鉚像圭腕憑怠驚眺撩夜薊冉墻寡文圖的基本概念和存儲結(jié)
27、構(gòu)圖的基本概念和存儲結(jié)構(gòu)1、輸入?yún)?shù):vexNum, arcNum, graghKind2、輸入頂點信息3、根據(jù)GraghKind,決定邊是否要帶權(quán)重4、采用某種形式逐條輸入邊,將它插入到存儲結(jié)構(gòu)中建立存儲結(jié)構(gòu)的一般步驟:創(chuàng)建圖巷鵝危消怖墮盾油萊延澀炊惡搏腸棲淑貫竹施贊把暫移疾殷泡鑼眺述粥隱圖的基本概念和存儲結(jié)構(gòu)圖的基本概念和存儲結(jié)構(gòu)void createGragh( ) /建立鄰接表/輸入頂點數(shù)vexNum,邊的條數(shù)arcNum,圖的類型graghKind。if switch(graghKind)case DG: return CreateDG( );case DN: return Crea
28、teDN( );case UDG: return CreateUDG( );case UDN: return CreateUDN( );default: return ERROR; 創(chuàng)建圖我辭啦彌盆繩躥叫斑婿豐嘗徽抓告捶稀湍氖撰私介巴篇錢約飲些蓮答甘倦圖的基本概念和存儲結(jié)構(gòu)圖的基本概念和存儲結(jié)構(gòu)void createDG( ) for(i=0;ivexNum;i+) /輸入頂點信息,data為輸入的頂點數(shù)據(jù)verticesi.data = data for(i=0;iarcNum;i+) /輸入邊的信息,為輸入的弧信息p= new arcNode; /建立節(jié)點if(!p) return ERR
29、OR;p.adjVex=w;p.nextArc=verticesv.firstarc; /頂點v的鏈表verticesv.firstArc=p; /添加到最左邊 創(chuàng)建圖膳斧寅滓梳閣嬌絆綁婁楊絹皋漲集愿趙帝核管讀殺網(wǎng)濰淳芽準朱芭源白寡圖的基本概念和存儲結(jié)構(gòu)圖的基本概念和存儲結(jié)構(gòu)void createUDG( ) for(i=0;ivexNum;i+) /輸入頂點信息,data為輸入的頂點數(shù)據(jù)verticesi.data = data 創(chuàng)建圖public void addEdge(int start, int end) Arc p=new Arc(end); p.nextArc=vertexsstart.firstArc; vertexss
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 網(wǎng)絡安全應急響應-第3篇-洞察分析
- 網(wǎng)絡學習社區(qū)建設-洞察分析
- 數(shù)字藝術(shù)教育創(chuàng)新-洞察分析
- 水陸聯(lián)運技術(shù)集成-洞察分析
- 藥物作用靶點驗證技術(shù)-洞察分析
- 營養(yǎng)素與環(huán)境關(guān)系研究-洞察分析
- 網(wǎng)絡藝術(shù)市場分析-洞察分析
- 新能源車輛在物流業(yè)的應用-洞察分析
- 從社交平臺到市場爆款的地鐵文創(chuàng)產(chǎn)品設計秘訣
- 辦公空間綠色改造的實踐與思考
- 2024屆高考專題復習:詩歌鑒賞之愛情詩 課件(共30張PPT)
- GB/T 10000-2023中國成年人人體尺寸
- 夫妻房產(chǎn)過戶給子女協(xié)議書
- 出境竹木草制品公司原輔料采購驗收制度
- 2023年臨床醫(yī)學(軍隊文職)題庫(共五套)含答案
- 關(guān)于學校學生意外死亡的情況報告
- 2023-2024學年江西省小學語文六年級期末??伎荚囶}附參考答案和詳細解析
- 山東省菏澤市高職單招2023年綜合素質(zhì)自考測試卷(含答案)
- 中國兒童注意缺陷多動障礙(ADHD)防治指南
- 強力皮帶運行危險點分析及預控措施
- 基于STM32的可遙控智能跟隨小車的設計與實現(xiàn)-設計應用
評論
0/150
提交評論