第六章学习小结
圖(Graph):是由頂點(diǎn)的有窮非空集合和頂點(diǎn)之間邊的集合組成,通常表示為:G(V,E),其中,G表示一個(gè)圖,V是圖G中頂點(diǎn)的集合,E是圖G中邊的集合。
線性表中我們把元素叫元素,樹中叫結(jié)點(diǎn),在途中數(shù)據(jù)元素我們則稱為頂點(diǎn)(Vertex)。
線性表可以沒有數(shù)據(jù)元素,稱為空表,樹中可以沒有結(jié)點(diǎn),叫空樹,圖中強(qiáng)調(diào)頂點(diǎn)集合V要有窮且非空。
有向邊:若從頂點(diǎn)Vi到Vj的邊有方向,則稱這條邊為有向邊,也稱為弧(Arc),用有序偶<Vi,Vj>來表示,Vi稱為弧尾,Vj稱為弧頭。
簡單圖:在圖結(jié)構(gòu)中,若不存在頂點(diǎn)到其自身的邊,且同一條邊不重復(fù)出現(xiàn),則稱這樣的圖為簡單圖。
無向完全圖:在無向圖中,如果任意兩個(gè)頂點(diǎn)間都存在邊,則稱該圖為無向圖。含有n個(gè)頂點(diǎn)的無向完全圖有n*(n-1)/2條邊。
有向完全圖:在有向圖中,如果任意兩個(gè)頂點(diǎn)之間都存在方向互為相反的兩條弧,則稱該圖為有向完全圖。含有n個(gè)頂點(diǎn)的有向完全圖有n*(n-1)條邊。
稀疏圖和稠密圖:這里的稀疏圖和稠密圖是模糊的概念,都是相對而言的,通常認(rèn)為邊或弧數(shù)小于n*logn(n是頂點(diǎn)個(gè)數(shù))的圖稱為稀疏圖,反之稱為稠密圖。
帶權(quán)的圖通常稱為網(wǎng)(Network):圖的邊或弧帶有與它相關(guān)的數(shù)字,這種與圖的邊或弧相關(guān)的樹叫權(quán)(Weight)。
假設(shè)有兩個(gè)圖G1=(V1,E1)和G2=(V2,E2),如果V2?V1,E2?E1,則稱G2為G1的子圖(Subgraph)。
對于無向圖G=(V,E),如果邊(V1,V2)∈E,則稱頂點(diǎn)V1和V2互為鄰接點(diǎn)(Adjacent),即V1和V2相鄰。邊(V1,V2)依附(incident)于頂點(diǎn)V1和V2,或者說邊(V1,V2)與頂點(diǎn)V1和V2相關(guān)聯(lián)。
頂點(diǎn)V的度(Degree)是和V相關(guān)聯(lián)的邊的數(shù)目,記為TD(V)。
路徑的長度是路徑上的邊或弧的數(shù)目。
第一個(gè)頂點(diǎn)到最后一個(gè)頂點(diǎn)相同的路徑稱為回路或環(huán)(Cycle)。
序列中頂點(diǎn)不重復(fù)出現(xiàn)的路徑叫簡單路徑,除第一個(gè)頂點(diǎn)和最后一個(gè)頂點(diǎn)外,其余頂點(diǎn)不重復(fù)出現(xiàn)的回路,稱為簡單回路或簡單環(huán)。
圖的遍歷:
深度優(yōu)先搜索:假設(shè)初始狀態(tài)是圖中所有頂點(diǎn)未曾被訪問,則深度優(yōu)先搜索可從圖中某個(gè)頂點(diǎn)發(fā)v 出發(fā),訪問此頂點(diǎn),然后依次從v 的未被訪問的鄰接點(diǎn)出發(fā)深度優(yōu)先遍歷圖,直至圖中所有和v 有路徑相通的頂點(diǎn)都被訪問到;若此時(shí)圖中尚有頂點(diǎn)未被訪問,則另選圖中一個(gè)未曾被訪問的頂點(diǎn)作起始點(diǎn),重復(fù)上述過程,直至圖中所有頂點(diǎn)都被訪問到為止。
無向圖:
?
?
有向圖:
廣度優(yōu)先搜索:從圖中某頂點(diǎn)v出發(fā),在訪問了v之后依次訪問v的各個(gè)未曾訪問過的鄰接點(diǎn),然后分別從這些鄰接點(diǎn)出發(fā)依次訪問它們的鄰接點(diǎn),并使得“先被訪問的頂點(diǎn)的鄰接點(diǎn)先于后被訪問的頂點(diǎn)的鄰接點(diǎn)被訪問,直至圖中所有已被訪問的頂點(diǎn)的鄰接點(diǎn)都被訪問到。如果此時(shí)圖中尚有頂點(diǎn)未被訪問,則需要另選一個(gè)未曾被訪問過的頂點(diǎn)作為新的起始點(diǎn),重復(fù)上述過程,直至圖中所有頂點(diǎn)都被訪問到為止。
無向圖:
?
?
?
有向圖:
這是我推薦的圖的遍歷的博客:https://www.cnblogs.com/skywang12345/p/3711483.html
這周我打算開始復(fù)習(xí)前面的內(nèi)容,鞏固一下已經(jīng)遺忘的知識(shí)。
轉(zhuǎn)載于:https://www.cnblogs.com/yyxbokewang/p/10890721.html
總結(jié)
- 上一篇: 202701算法_冒泡排序
- 下一篇: flink批处理中的source以及si