五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

C語言解決最小生成樹(Prim & Kruskal算法)

2023-08-16 22:33 作者:快樂的小log  | 我要投稿

????????最小生成樹是一個無向連通圖的最小權(quán)重生成樹。在C語言中,可以使用Prim算法或Kruskal算法來實現(xiàn)最小生成樹。

Prim算法實現(xiàn)最小生成樹的思路如下:

  1. 創(chuàng)建一個數(shù)組key[],用于存儲頂點到最小生成樹的最小權(quán)重。

  2. 創(chuàng)建一個數(shù)組parent[],用于存儲最小生成樹中每個頂點的父節(jié)點。

  3. 創(chuàng)建一個數(shù)組visited[],用于標(biāo)記頂點是否已經(jīng)加入最小生成樹。

  4. 將key[]數(shù)組初始化為無窮大(INF),parent[]數(shù)組初始化為空(-1),visited[]數(shù)組初始化為false。

  5. 將第一個頂點作為起始頂點,將key[0]設(shè)置為0。

  6. 循環(huán)進行以下步驟,直到所有頂點都被加入最小生成樹:

    1. 找到未加入最小生成樹的頂點中key值最小的頂點。

    2. 將該頂點標(biāo)記為visited[]數(shù)組中的true。

    3. 遍歷該頂點的所有鄰接頂點,如果鄰接頂點未被訪問且邊的權(quán)重小于key值,則更新key值和parent值。

  7. 輸出最小生成樹的邊和權(quán)重。

Kruskal算法實現(xiàn)最小生成樹的思路如下:

  1. 創(chuàng)建一個數(shù)組parent[],用于存儲每個頂點的父節(jié)點。

  2. 創(chuàng)建一個數(shù)組rank[],用于存儲每個頂點的秩。

  3. 創(chuàng)建一個輔助數(shù)組edges[],用于存儲圖中的所有邊。

  4. 將圖中的所有邊按照權(quán)重從小到大排序。

  5. 初始化parent[]數(shù)組和rank[]數(shù)組,將所有頂點的父節(jié)點設(shè)置為自身,秩設(shè)置為0。

  6. 循環(huán)遍歷排序后的邊,如果兩個頂點不在同一個連通分量中(通過判斷它們的最終父節(jié)點是否相同):

    1. 將邊加入最小生成樹中。

    2. 合并兩個頂點所在的連通分量,即將其中一個頂點的父節(jié)點設(shè)置為另一個頂點。

  7. 輸出最小生成樹的邊和權(quán)重。

prim算法運行結(jié)果
Kruskal算法運行結(jié)果


C語言解決最小生成樹(Prim & Kruskal算法)的評論 (共 條)

分享到微博請遵守國家法律
舒城县| 台州市| 侯马市| 瑞昌市| 怀安县| 太仓市| 侯马市| 全州县| 龙岩市| 会理县| 克山县| 嘉定区| 芜湖县| 满洲里市| 桃江县| 尤溪县| 三台县| 巩留县| 沽源县| 图片| 峨山| 奉新县| 泌阳县| 和政县| 灯塔市| 厦门市| 枝江市| 台中市| 民乐县| 弥勒县| 卢龙县| 大丰市| 石家庄市| 娄烦县| 临安市| 崇信县| 泗阳县| 义乌市| 静海县| 珲春市| 新野县|