五月天青色头像情侣网名,国产亚洲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算法)的評論 (共 條)

分享到微博請遵守國家法律
大新县| 巩义市| 余姚市| 太康县| 万全县| 泗洪县| 鹤峰县| 嘉祥县| 津市市| 威信县| 大洼县| 青铜峡市| 兴义市| 大洼县| 墨玉县| 沙河市| 花莲县| 遂宁市| 瑞安市| 河北省| 昭通市| 满城县| 南昌市| 清涧县| 集安市| 塔城市| 峨边| 新源县| 紫云| 扎囊县| 曲松县| 夏邑县| 云霄县| 昭觉县| 滦平县| 漳浦县| 林西县| 友谊县| 静海县| 三台县| 奉贤区|