圖1
阿新 • • 發佈:2021-08-06
圖
什麼是圖
常見術語
無向圖:一個圖裡面的所有邊都是無所謂方向的
有向圖:邊可能是單向的也可能是雙向的,方向對其有一定作用
權重:每條邊上的一個數字,再現實生活中有各種各樣的意義
網路:帶權重的圖
鄰接點:如果有直接的邊跟他相連的所有的頂點叫這個點的鄰接點
度:
- 出度:從該點出發的邊數
- 出度:指向該點的邊數
如何再程式中表示一個圖
鄰接矩陣
特點:對稱的,對角線處全為0 看圖方法:<v1,v3>處位1,則1和3間有一條邊,為0則無,比如<v0,v2>為0,0和2之間沒有邊
因為鄰接矩陣是沿著對角線對稱的,所有我們可以只存一半的空間
對於網路來說,可以將1改寫成邊的權重
鄰接矩陣的好處
鄰接矩陣的侷限
鄰接表
好處和侷限
圖的遍歷
深度優先搜尋(DFS)
以一個迷宮為例,在迷宮的各個拐角處,有一個個燈泡,我們要把每一個燈點亮
假定個了一個迷宮的入口,我們先把入口處的燈泡點亮,然後站在這個路口,在視線可見的幾個路口的燈,挑一盞燈走過去點亮,不斷重複,如果在某個路口,視線可見內的所有燈都是亮的,則原路退回上一個路口,任何情況下在視線範圍內全是亮的的要返回,直到返回到起點
廣度優先搜尋(BFS)
把它彈出來的時候
先指定一個起點(初始點 1),把這個點壓到佇列裡,然後進入那個佇列的迴圈,就順序把跟它有邊相連的這些點也一一壓到隊裡,然後彈出 2,再把與2直接相連的點呀壓到隊裡,不斷迴圈
例項虛擬碼的enqueue是將其壓到佇列裡,dequeue是彈出