數據結構與算法(3)圖

圖的遍歷、最小生成樹算法

圖的遍歷

  從圖中某一個頂點出發,訪問圖中的每個結點,並要求只能訪問一次,不能重複訪問。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)算法對比       普里姆算法更加註重的是結點,點與點之間距離最短的優先;克魯斯卡爾算法更加註重的是邊,將邊排序,最小邊排在前面,最大邊排在後面。

相關文章
相關標籤/搜索