算法 - 圖

如下純粹我的觀點,若有錯誤望指出算法

 

術語表:網絡

圖的應用:地圖、計算機網絡、電路、任務調度等;計算機網絡

4種最重要的圖模型:無向圖(簡單鏈接)、有向圖(鏈接有方向性)、加權圖(鏈接帶有權值)和加權有向圖(鏈接帶有方向又帶有權值)對象

無向圖字符串

定義:圖是由一組頂點和一組可以將兩個頂點相連的邊組成的class

度數:某個頂點的度數即爲依附於它的邊的總數數據類型

路徑:在圖中,路徑是由邊順序鏈接的一系列頂點。方法

簡單路徑:簡單路徑是一條沒有重複頂點的路徑。地圖

環:環是一條至少含有一條邊且起點和終點相同的路徑。鏈表

簡單環:簡單環是一條(除了起點和終點必須相同以外)不含有重複頂點和邊的環。路徑或者環的長度爲其中所包含的邊數。

連通圖:若是從任意一個頂點都存在一條路徑到達另外一個任意頂點,咱們稱這幅圖是連通圖。一
幅非連通的圖由若干連通的部分組成,它們都是其極大連通子圖。

 

圖的密度:圖的密度是指已經鏈接的頂點對佔全部可能被鏈接的頂點對的比例。

在稀疏圖中,被鏈接的頂點
對不多;而在稠密圖中,只有少部分頂點對之間沒有邊鏈接。通常來講,若是一幅圖中不一樣的邊的數
量只佔頂點總數V 的一小部分,那麼咱們就認爲這幅圖是稀疏的,不然則是稠密的

 

二分圖:二分圖是一種可以將全部結點分爲兩部分的圖,其中圖的每條邊所鏈接的兩個頂點都分別屬於不
同的部分

一種表示圖的數據類型的API 及其實現:

public class Graph 無向圖結構定義

Graph(int V) 建立一個含有V個頂點但不包含邊的無向圖

Graph (In in)從標準輸入流中讀取一幅圖

int V() 頂點數

int E() 邊數

void addEdge(int v,int w)向圖中增長一條邊 v-w

Iterable<Integer> adj(int v) 和v相鄰的全部頂點

String toString() 對象的字符串表示

 圖的表示方法:單鏈表

一些查找圖和鑑別連通份量的經典算法:

相關文章
相關標籤/搜索