1. 程式人生 > 其它 >圖1

圖1

什麼是圖

常見術語

無向圖:一個圖裡面的所有邊都是無所謂方向的
有向圖:邊可能是單向的也可能是雙向的,方向對其有一定作用
權重:每條邊上的一個數字,再現實生活中有各種各樣的意義
網路:帶權重的圖
鄰接點:如果有直接的邊跟他相連的所有的頂點叫這個點的鄰接點
度:

  • 出度:從該點出發的邊數
  • 出度:指向該點的邊數


如何再程式中表示一個圖

鄰接矩陣


特點:對稱的,對角線處全為0 看圖方法:<v1,v3>處位1,則1和3間有一條邊,為0則無,比如<v0,v2>為0,0和2之間沒有邊
因為鄰接矩陣是沿著對角線對稱的,所有我們可以只存一半的空間


對於網路來說,可以將1改寫成邊的權重


鄰接矩陣的好處

鄰接矩陣的侷限

鄰接表


好處和侷限

圖的遍歷

深度優先搜尋(DFS)

以一個迷宮為例,在迷宮的各個拐角處,有一個個燈泡,我們要把每一個燈點亮
假定個了一個迷宮的入口,我們先把入口處的燈泡點亮,然後站在這個路口,在視線可見的幾個路口的燈,挑一盞燈走過去點亮,不斷重複,如果在某個路口,視線可見內的所有燈都是亮的,則原路退回上一個路口,任何情況下在視線範圍內全是亮的的要返回,直到返回到起點

廣度優先搜尋(BFS)

把它彈出來的時候
先指定一個起點(初始點 1),把這個點壓到佇列裡,然後進入那個佇列的迴圈,就順序把跟它有邊相連的這些點也一一壓到隊裡,然後彈出 2,再把與2直接相連的點呀壓到隊裡,不斷迴圈
例項虛擬碼的enqueue是將其壓到佇列裡,dequeue是彈出

不完全連通圖的遍歷