
定義
圖是由若幹給定的頂點及連接配接兩頂點的邊所構成的圖形,這種圖形通常用來描述某些事物之間的某種特定關系。頂點用于代表事物,連接配接兩頂點的邊則用于表示兩個事物間具有這種關系。
定義來自維基百科: 圖論
結構
圖中隻包含兩種類型的元素:頂點(vertex)和邊(edge),是以圖可以由頂點集合和邊集合進行表示,即:
。根據邊是否具有方向,可以将圖分為有向圖和無向圖兩種。
無向圖
graph
有向圖
digraph
上面兩張圖 graph 和 digraph 具有相同的頂點集合
,但是邊集合
不同,是以屬于不同的兩個圖。
權重
上述圖定義中提到,邊的作用是用來描述兩個頂點之間的關系,圖 graph 和 digraph 兩個示例中的邊僅能表示兩個頂點之間是連通的,可達的,并不能代表别的意義。可以給邊設定大小值,即權重,表示兩個頂點之間連通的程度。例如當圖中頂點表示城市的坐标時,則可以設定連接配接兩個頂點的邊的權重為距離,或某種交通方式消耗的時間。
度
從一個頂點出發,到相鄰頂點的邊的個數稱為該頂點的出度,以該頂點為終點的邊的個數稱為該頂點的入度。因為無向圖的邊不具有方向性,是以無向圖中頂點的出度與入度相等。
路徑與回路
從頂點集合
中選擇
作為起點,
作為終點,從起點出發到達終點的過程中,經過的邊的集合稱為路徑,路徑中邊的個數稱為路徑長度。若路徑中不重複經過一個頂點,則稱為簡單路徑。若起點和終點是同一個頂點,則該路徑也稱之為回路。
連通圖、連通分量與生成樹
對于無向圖,若圖中任意兩個頂點之間存在路徑,則該無向圖為連通圖;對于有向圖,若圖中任意兩個頂點之間存在路徑,則該有向圖為強連通圖。
對于無向圖,其極大連通子圖稱為該無向圖的連通分量;對于有向圖,其極大強連通子圖稱為該無向圖的強連通分量。
根據連通分量定義可知,對于連通圖,極大連通子圖是其自身,是以圖的連通分量就是其自身。對于非連通圖,因為可以存在多個極大連通子圖,是以可以具有多個連通分量。
連通圖的極小連通子圖也稱之為生成樹,即包含頂點集合
,但是邊的個數為
。生成樹可以有多個,經常提到的最小生成樹,也就是帶權連通圖中權值之和最小的生成樹。
圖相關的概念較多,再次強調一點,就像在介紹二叉樹時所說,概念隻是起到輔助說明的角色,為了友善了解和傳播事物而誕生的産物,不應該過分糾結概念而忽略了真正的目的。
github
連結: 圖