1. 程式人生 > >資料結構圖知識點小結

資料結構圖知識點小結

圖的遍歷:

深度優先:
在這裡插入圖片描述
在這裡插入圖片描述
廣度優先:
在這裡插入圖片描述
在這裡插入圖片描述

最小生成樹:

必須滿足條件:演算法完成後不能存在迴路;V個頂點就只有V-1條邊;必須包含所有頂點
PS:若生成樹成功,一定是連通圖。若生成樹失敗,原圖不連通
定義所有頂點為S,每次收錄進去的組成集合V,剩下的是集合S-V
一、KRUSKAL演算法:
思路:每次都收錄權重最小的邊進入集合V(這條邊不能構成迴路)直到收錄了所有頂點
PS:這種思路的出發點是邊,可以用小頂堆來儲存邊的權重。
在這裡插入圖片描述二、PRIM演算法:
從第一個點開始,收錄到集合V中,看與集合V相連的點,權重最小的收錄進去(不能構成迴路),注意每次收錄的點是與集合V相連的點,這個點可以依賴於集合V中的任何一個結點。
兩種演算法如下所示:
在這裡插入圖片描述

拓撲排序:

定義:如果從V 到W有一條有向路徑,V一定要排在W前面。
能夠進行拓撲排序的一定是有向無環圖。
在這裡插入圖片描述

最短路徑

單源無權圖的最短路徑:
按照遞增的順序依次排列,直到求出從源點到目標點的最短路徑;
多源有權圖最短路徑:
Dijkstra演算法:按照遞增的順序依次排列,直到求出源點到目標點的最短路徑;
示例如下:
在這裡插入圖片描述