圖的遍歷、最小生成樹算法
從圖中某一個頂點出發,訪問圖中的每個結點,並要求只能訪問一次,不能重複訪問。spa
(1)廣度優先遍歷排序
基本思想:首先訪問頂點,再訪問頂點的所有未訪問的鄰結點,再訪問鄰結點的全部結點便可(相似樹的層次遍歷)。遍歷
廣度優先遍歷:V1,V2,V3,V4,V5,V6或V1,V4,V3,V2,V6,V5im
(2)深度優先遍歷img
基本思想:首先訪問頂點,再訪問頂點的每一個鄰結點,從該點繼續深度優先遍歷(相似於樹的前序遍歷)block
深度優先遍歷:V1,V2,V5,V3,V6,V4或V1,V4,V6,V3,V5,V2生成
圖的廣度優先遍歷和深度優先遍歷的結果並不惟一。
(1)普里姆(Prim)算法 基本思想:選一個頂點開始,查找與頂點相鄰且代價(邊值)最小的邊的另外一個頂點,直到最後。 例如:V1做爲頂點,V1->V3->V6->V4,V3->V2->V5,鏈接圖中全部的結點便可。(2)克魯斯卡爾(Kruskal)算法 基本思想:選擇圖中最小的邊,直到全部結點都連通。 例如:第一小邊:V1->V3,第二小邊:V4->V6,第三小邊:V2-V5,第四小邊:V3->V6,第五小邊:V3->V2,此時全部的結點都連到了一塊兒。(3)算法對比 普里姆算法更加註重的是結點,點與點之間距離最短的優先;克魯斯卡爾算法更加註重的是邊,將邊排序,最小邊排在前面,最大邊排在後面。