获得无向图连通子图_讲透学烂二叉树(一):图的概念和定义—各种属性特征浅析...
樹和圖的概念
圖是一種特殊的數據結構,由點和邊構成,它可以用來描述元素之間的網狀關系,這個網狀沒有順序,也沒有層次,就是簡單的把各個元素連接起來。
圖的概念和基本性質
圖(graph):圖(graph)由邊(edge)的集合及頂點(vertex)的集合組成。通常記為:G=(V,E)。對于兩個圖G和G’,如果G’的頂點集合與邊集合均為G的頂點集合與邊集合的子集,那么稱G’是G的子圖。子圖實際上就是一張圖里面小一點的圖,也可以是點,不難理解。
圖常用來表示“多對多”的關系,如常說的:六度空間理論(Six Degrees Separation)
頂點(vertex)的屬性:
- 度數(degree),與該頂點相關聯的總邊數,一個圖G的總度數d(V)等于總邊數2倍:2E。當圖的邊具有方向時,一個頂點又分為出度(out-degree)和入度(in-degree),出度是以該頂點為起點的邊數,入度是以該頂點為終點的邊數。
- 階數(order),圖G中頂點集V的大小為G的階數。
邊又稱為線(line)或弧(arc),邊(u,v)中表示u和v鄰接(adjacent),(u, v) ∈ E,
邊(edge)的屬性:
一條邊是一個頂點對(u,v),u, v ∈ V,按照圖的頂點對是否有序,頂點對有序的圖稱為有向圖(directed graph, digraph),此時邊(u,v)和(v,u)是兩條不同的邊,頂點對無序的圖稱為無向圖(undirected graph),此時邊(u,v)和(v,u)是兩條相同的邊,無向圖可看作一個特殊的有向圖
具有成分的邊包含:權(weight)、值(cost/value),此時圖由可分為有權圖(weighted graph)和無權圖(unweighted graph),無權圖可以看作是所有邊權值相同的有權圖。
路徑(path),一條路徑是一個頂點序列u1, u2, u3, …, un,(ui, u(i+1)) ∈E,1<=i<n。路徑長等于路徑的邊數:n-1,不包含邊的路徑長為0。
簡單路徑:路徑上所有頂點互異,起點和終點可以相同
環或圈(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是強連通的
- 強連通圖:有向圖中任意兩頂點均強連通
- 弱連通圖:不符合強連通圖的條件,但是若是將邊的方向都去掉,如果是連通的,則稱為弱連通圖
- 強連通分量:有向圖的極大強連通子圖
圖的簡單應用
圖的應用很廣泛,這里舉幾個簡單的例子。
- 航空系統:頂點表示機場,邊表示時間、距離或飛行的費用,一般最好有強連通的航空系統,另外常見的需求問題有:求任意兩個機場的最佳航線。
- 交通流:頂點表示街道的交叉口或紅綠燈點,邊表示速度限度或車輛容量,這時可以求最可能參數交通瓶頸的位置,或找出一條最短路。
- 社交網絡:頂點表示用戶,用戶的活動、推薦或好友代表邊,這樣可以表示一個完整的社交用戶網絡。
- 電商推薦系統:頂點表示用戶已瀏覽、收藏、購物過等相關的商品,邊表示兩個商品的相似性,可表示為有權圖,權值為相似性的大小。
另外圖論又可用于研究物理學和化學中的分子
圖的遍歷
本系列主要講二叉樹,關于圖,推薦閱讀文章有:
- 數據結構與算法之圖的概念、存儲結構及遍歷方式 https://www.cnblogs.com/ivy-zheng/p/10995510.html
- 圖的概念、存儲及遍歷 https://blog.csdn.net/qq_39914766/article/details/90182084
- 圖論(graph theory)算法原理、實現和應用全解 www.srcmini.com/1635.html
轉載本站文章《講透學爛二叉樹(一):圖的概念和定義—各種屬性特征淺析》,
請注明出處:https://www.zhoulujun.cn/html/theory/algorithm/TreeGraph/8281.html
總結
以上是生活随笔為你收集整理的获得无向图连通子图_讲透学烂二叉树(一):图的概念和定义—各种属性特征浅析...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 无效0_一场时代的变革,一场与时间的较量
- 下一篇: static在内存层面的作用_虚拟地址空