本文是[資料結構基礎系列(7):圖]中第12課時[最小生成樹的克魯斯卡爾演算法]的例程。
(程式中graph.h是圖儲存結構的「演算法庫」中的標頭檔案,詳情請單擊鏈結…)
#include
#include
#include "graph.h"
#define maxsize 100
typedef
struct
edge;
void insertsort(edge e,int n) //對e[0..n-1]按遞增有序進行直接插入排序
e[j+1]=temp; //在j+1處插入e[i]
}}void kruskal(mgraph g)
insertsort(e,g.e); //採用直接插入排序對e陣列按權值遞增排序
for (i=0; i//初始化輔助陣列
vset[i]=i;
k=1; //k表示當前構造生成樹的第幾條邊,初值為1
j=0; //e中邊的下標,初值為0
while (k//生成的邊數小於n時迴圈
j++; //掃瞄下一條邊
}}int main()
, ,,,
,};
arraytomat(a[0], 6, g);
printf("最小生成樹構成:\n");
kruskal(g);
return
0;}
實用資料結構 最小生成樹(克魯斯卡爾實現)
題目描述 description 學校需要將n臺計算機連線起來,不同的2臺計算機之間的連線費用可能是不同的。為了節省費用,我們考慮採用間接資料傳輸結束,就是一台計算機可以間接地通過其他計算機實現和另外一台計算機連線。為了使得任意兩台計算機之間都是連通的 不管是直接還是間接的 需要在若干臺計算機之間用...
最小生成樹 克魯斯卡爾演算法
c node.h檔案 儲存頂點資訊 class c node c node c node c node p node c node c node c node c node char p data node.h檔案,儲存邊資訊 include class link node link node li...
最小生成樹( 克魯斯卡爾演算法)
name author date 01 12 14 20 17 description 最小生成樹 克魯斯卡爾演算法 關於並查集的演算法,參見 一種簡單而有趣的資料結構 並查集 include include define maxn 1000 最大頂點數量 define max 20000 最大邊數...