算法的基本思想是從一個起點開始,不斷擴展生成樹,直到包含所有的節點。具體步驟如下
1. 選取一個起點作為生成樹的根節點,
2. 找到與生成樹相鄰的所有節點中,權值小的邊,
3. 重復第二步,直到生成樹包含所有節點。
算法的具體過程。
假設有一個無向連通圖,如下圖所示
gageit_1)
我們以節點為起點,開始構建小生成樹。首先將節點加入生成樹中。
gageit_1)
接下來,我們需要找到與生成樹相鄰的所有節點中,權值小的邊。根據圖示可知,與節點相鄰的所有節點為B、D、E,其中權值小的邊為D,
gageit_1)
接下來,我們繼續找到與生成樹相鄰的所有節點中,權值小的邊。此時,與生成樹相鄰的所有節點為B、C、D、E,其中權值小的邊為BD,
gageit_1)
重復以上步驟,直到生成樹包含所有節點。終得到的小生成樹如下圖所示
gageit_1)
算法的實現過程非常簡單,只需要不斷找到與生成樹相鄰的節點中,權值小的邊,將其加入生成樹中即可。
算法是一種非常實用的算法,可以用于解決小生成樹問題。