最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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算法)的評論 (共 條)

分享到微博請遵守國家法律
太仆寺旗| 宁阳县| 古浪县| 抚州市| 通江县| 县级市| 康乐县| 八宿县| 马尔康县| 祁东县| 微山县| 涞源县| 闻喜县| 荃湾区| 涪陵区| 彭泽县| 西乌珠穆沁旗| 铅山县| 兴隆县| 拜城县| 临桂县| 齐齐哈尔市| 锡林郭勒盟| 阿克| 宾阳县| 天台县| 杂多县| 双牌县| 怀来县| 神农架林区| 漠河县| 巫山县| 崇信县| 木兰县| 南充市| 新和县| 宜川县| 呼伦贝尔市| 大安市| 南漳县| 贵州省|