C++图
圖的表示
1.鄰接矩陣
2.鄰接表
圖的遍歷
DFS(深度優(yōu)先遍歷)
BFS(廣度優(yōu)先遍歷)
拓?fù)渑判?br> 最小生成樹(shù)
Prim算法
圖可以用G=(V,E)來(lái)表示,每個(gè)圖都包括一個(gè)頂點(diǎn)集合V和一個(gè)邊集合E,頂點(diǎn)總數(shù)記為|V|,邊總數(shù)記為|E|
稀疏圖:邊數(shù)較少的圖
密集圖:邊數(shù)較多的圖
完全圖:包含所有可能邊的圖
帶權(quán)圖:邊上標(biāo)有權(quán)的圖
鄰接點(diǎn):一條邊所連的兩個(gè)頂點(diǎn)
簡(jiǎn)單路徑:路徑上不包含重復(fù)頂點(diǎn)的圖
回路:將某個(gè)頂點(diǎn)連接到本身,且長(zhǎng)度大于等于3的路徑
無(wú)環(huán)圖:不帶回路的圖
圖的表示
圖有兩種常用的表示方法:
1.鄰接矩陣
2.鄰接表
1.鄰接矩陣
使用一個(gè)二維矩陣來(lái)表示圖:
1.(i,j)=1,表示頂點(diǎn)i到頂點(diǎn)j之間有一條邊(非帶權(quán)圖)
2.(i,j)=n,表示頂點(diǎn)i到頂點(diǎn)j之間有一條權(quán)重為n的邊(帶權(quán)圖)
使用鄰接矩陣的空間代價(jià)總是O(|V|^2)
2.鄰接表
鄰接表使用一個(gè)頂點(diǎn)指針數(shù)組來(lái)表示:
1.數(shù)組的元素i表示頂點(diǎn)i的指針,它是一個(gè)鏈表的頭結(jié)點(diǎn)
2.鏈表其余的頂點(diǎn)表示與頂點(diǎn)i之間存在邊的頂點(diǎn)
鄰接表的空間代價(jià)與圖中邊的數(shù)目和頂點(diǎn)的數(shù)目均有關(guān)系。每個(gè)頂點(diǎn)要占據(jù)一個(gè)數(shù)組元素的位置,且每條邊必須出現(xiàn)在其中某個(gè)頂點(diǎn)的邊鏈表中
圖的遍歷
DFS(深度優(yōu)先遍
總結(jié)
- 上一篇: c++线程数量的限制
- 下一篇: C++const的作用与使用