圖是一種特殊的數據結構,由點和邊構成,它能夠用來描述元素之間的網狀關係,這個網狀沒有順序,也沒有層次,就是簡單的把各個元素鏈接起來。html
圖(graph):圖(graph)由邊(edge)的集合及頂點(vertex)的集合組成。一般記爲:G=(V,E)。對於兩個圖G和G’,若是G’的頂點集合與邊集合均爲G的頂點集合與邊集合的子集,那麼稱G’是G的子圖。子圖實際上就是一張圖裏面小一點的圖,也能夠是點,不難理解。算法
圖經常使用來表示「多對多」的關係,如常說的:六度空間理論(Six Degrees Separation)網絡
度數(degree),與該頂點相關聯的總邊數,一個圖G的總度數d(V)等於總邊數2倍:2E。當圖的邊具備方向時,一個頂點又分爲出度(out-degree)和入度(in-degree),出度是以該頂點爲起點的邊數,入度是以該頂點爲終點的邊數。數據結構
階數(order),圖G中頂點集V的大小爲G的階數。ide
邊又稱爲線(line)或弧(arc),邊(u,v)中表示u和v鄰接(adjacent),(u, v) ∈ E,oop
一條邊是一個頂點對(u,v),u, v ∈ V,按照圖的頂點對是否有序,頂點對有序的圖稱爲有向圖(directed graph, digraph),此時邊(u,v)和(v,u)是兩條不一樣的邊,頂點對無序的圖稱爲無向圖(undirected graph),此時邊(u,v)和(v,u)是兩條相同的邊,無向圖可看做一個特殊的有向圖ui
具備成分的邊包含:權(weight)、值(cost/value),此時圖由可分爲有權圖(weighted graph)和無權圖(unweighted graph),無權圖能夠看做是全部邊權值相同的有權圖。spa
路徑(path),一條路徑是一個頂點序列u1, u2, u3, …, un,(ui, u(i+1)) ∈E,1<=i<n。路徑長等於路徑的邊數:n-1,不包含邊的路徑長爲0。.net
簡單路徑:路徑上全部頂點互異,起點和終點能夠相同orm
環或圈(cycle),此時u1=un,並且路徑長至少爲1,有向圖(u,v)和(v,u)是一個圈,無向圖(u,v)和(v,u)一般不被認爲是一個圈。其中無圈圖(acyclic graph)中沒有圈,無圈有向圖又稱爲DAG(directed acyclic graph)
自環邊(self loop),兩個頂點都相同的邊。
重邊或平行邊(parallel edges),鏈接兩個頂點的邊數超過一條,又稱爲多重邊(multiple edges)
連通圖(connected graph),無向圖中每一個頂點到任意頂點都存在一條路徑,連通的有向圖稱爲強連通(strongly connected),非連通的有向圖,去掉方向其基礎圖(underlying graph)是連通的,則成爲弱連通的(weakly connected)
徹底圖(complete graph),圖中任意一對頂點都存在一條邊
稀疏圖(sparse graph),每一個頂點的度數較小的圖
頂點的度:無向圖中連着頂點的邊的數目。
頂點的入度和出度:有向圖中,以這個頂點爲起點的邊的數量稱爲這個頂點的出度;以這個頂點爲終點的邊稱爲這個頂點的入度。
邊權:邊的費用,能夠形象的理解爲「過路費」。對於一張存在邊權的圖,咱們稱爲「帶權圖」。
連通:若是圖中兩點U,V之間存在一條由U通過若干邊、點到達V的路徑,則稱U,V是連通的。
迴路:起點和終點相同的路徑,稱爲「迴路」或「環」。另外,不存在環的有向圖稱爲Directed Acyclic Graph(DAG)。
徹底圖:每一個點都與其它全部的點有連邊的圖。
無向圖:圖的邊沒有方向,能夠雙向。
有向圖:圖的邊有方向,只能按箭頭方向從一點到另外一點。
網絡:帶權重的圖
連通:若是從v 到w存在一條(無向)路徑,則稱v和w是連通的
路徑:v到w的路徑是一系列頂點的集合,其中任意一對相鄰的頂點間都有圖中的邊。
路徑的長度:是路徑中的邊數(若是帶權,則是全部邊的權重和)。若是v和w之間的全部頂點都不一樣,則稱簡單路徑
連通圖:圖中任意兩頂點都連通
連通份量:無向圖的極大連通子圖
極大頂點數:再加一個頂點就不連通了
極大邊數:包含子圖中全部頂點相連的全部邊
強連通:有向圖中頂點v和w之間存在雙向路勁,則稱v和w是強連通的
強連通圖:有向圖中任意兩頂點均強連通
弱連通圖:不符合強連通圖的條件,可是如果將邊的方向都去掉,若是是連通的,則稱爲弱連通圖
強連通份量:有向圖的極大強連通子圖
圖的應用很普遍,這裏舉幾個簡單的例子。
航空系統:頂點表示機場,邊表示時間、距離或飛行的費用,通常最好有強連通的航空系統,另外常見的需求問題有:求任意兩個機場的最佳航線。
交通流:頂點表示街道的交叉口或紅綠燈點,邊表示速度限度或車輛容量,這時能夠求最可能參數交通瓶頸的位置,或找出一條最短路。
社交網絡:頂點表示用戶,用戶的活動、推薦或好友表明邊,這樣能夠表示一個完整的社交用戶網絡。
電商推薦系統:頂點表示用戶已瀏覽、收藏、購物過等相關的商品,邊表示兩個商品的類似性,可表示爲有權圖,權值爲類似性的大小。
另外圖論又可用於研究物理學和化學中的分子
深度優先搜索(Depth Firsh Search, DFS):走一步,看一步,走不通後返回到上一個能走通的結點
廣度優先搜索(Breadth First Search, BFs):出隊一個,訪問一圈,訪問的同時入隊,至關於樹的層序遍歷(計劃性很是強,我的感受用這種遍歷方式更好一些)
本系列主要講二叉樹,關於圖,推薦閱讀文章有:
數據結構與算法之圖的概念、存儲結構及遍歷方式 https://www.cnblogs.com/ivy-zheng/p/10995510.html
圖的概念、存儲及遍歷 https://blog.csdn.net/qq_39914766/article/details/90182084
轉載本站文章《講透學爛二叉樹(一):圖的概念和定義—各類屬性特徵淺析》,
請註明出處:https://www.zhoulujun.cn/html/theory/algorithm/TreeGraph/8281.html