[資料結構] 圖(Graph) - iT 邦幫忙

文章推薦指數: 80 %
投票人數:10人

圖(Graph),在資料結構上指的是點和點之間的關聯的東西,並不是數學定義上的兩點成一線,三點成一面的那種圖 ... 無相圖 https://ithelp.ithome.com.tw/upload/images/ 2019iT邦幫忙鐵人賽 DAY 21 0 SoftwareDevelopment 30天學演算法和資料結構系列第 21篇 [資料結構]圖(Graph) 2019鐵人賽 資料結構 ramonliao 2018-11-0523:57:247373瀏覽 圖(Graph),在資料結構上指的是點和點之間的關聯的東西,並不是數學定義上的兩點成一線,三點成一面的那種圖。

一張圖由數條邊(Edge)和數個點(Vertex)所構成,點和點之間可用邊相連,表示這兩個點之間有所關聯。

當然,兩個點之間可以有很多個邊,代表很多關係,又或者是一個點可以與很多個點相連接。

1.同構(Isomorphism/Isomorphic) 指的是兩張圖的連接方式一模一樣的,而圖上的點可以任意移動,邊不論直的彎的皆可。

2.有向圖&無向圖 有向圖,邊有方向性,表示兩點之間為單向關係。

無向圖,邊無方向性,表示兩點之間為雙向關係。

3.權重 邊加上權重,代表兩點之間的關係 點加上權狀,代表狀態 4.名稱or代號 點可以有名稱或者代號 5.圖的資料結構 圖是由點和邊所組成,為了方便人了解,所以視覺化。

但實際上在電腦中的儲存方式卻有很多不同的方法。

可以有陣列或矩陣的方式儲存。

EagleList 將圖用陣列的方式,記錄點與點之間的邊 0 0 1 3 1 3 3 4 AdjacencyMatrix 把一張圖上的點依序標示編號,然後建立一個矩陣,來記錄連接資訊。

方陣中的每一個元素都代表著某兩點的連接資訊。

  0 1 2 3 4 5 6 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 3 0 0 0 0 0 1 0 4 0 0 0 0 1 0 0 5 0 0 0 1 0 0 0 6 1 0 0 0 0 1 0 舉例來說,0分別有一條連向3和4的邊,所以第0列的3、4行為1。

AdjacencyLists 在每一個點後方,串連所有相鄰有連接的點 無相圖 0 [1,3] 1 [0,3] 2 3 [0,1,4] 4 [3] 有向圖 0 [3,4] 1 2 3 [5] 4 [4] 5 [3] 6 [0,5] 圖的遍歷(GraphTraversal) 深度優先搜尋Depth-firstSearch 廣度優先搜尋Breadth-firstSearch (之後會另外討論~) 特殊圖 IntersectionGraph 若兩個物件有交集關係(非空集合),就可以表示成圖。

又或者是: 0={a,b,c} 1={a,d} 2={e} 3={b,d,f} 4={f} DependencyGraph 是將各個物件所仰賴或依賴的對象關係表示成圖。

A>C;EA;C 中華電信企業資安攻擊名稱HTTP-APACHE-LOG4j2-BODY6-RCE 熱門文章 【Day31】新加坡工作後續的時程 2021法遵科技與電腦稽核專題競賽-賀雲科大、逢甲、北商大、中正、致理科大、亞洲科大等學校隊伍獲獎,培育智慧法遵與AI稽核人才邁向國際~ Laravel-jQueryAJAX範例 [Day33]HexoxNexT-顯示最新文章、導入GoogleAnalytics的坑 【徵才】台北中山區-知名航空貨運-資訊網管人員 重構原本的內容(golang)(Day22) 科學家與研究生的關係研究篇 [Day??]2021iThome鐵人賽-頒獎典禮@2022.01.08‧輔仁大學 30天Python自學:Day01 印表機維修五種常見故障,若遇到問題就能先自己排除了 一週點數排行 更多點數排行 海綿寶寶(antijava) Gary(mosbbs) raytracy(raytracy) 一級屠豬士(hitomitanaka) Samuel(kuanyu) ccenjor(ccenjor) 居然解出來了(partyyaya) horace_work(horace_work) 純真的人(jer5173) souda(souda) × At 輸入對方的帳號或暱稱 Loading 找不到結果。

標記 {{result.label}} {{result.account}} 關閉



請為這篇文章評分?