public class class_kruskal,,
,};//初始化graphic中點和點的距離,32767表示距離無窮大
//另外乙個測試用例是/*,
,,,*/
label = new int[list_graph.length];
for(int i = 0; i < label.length; i++)//初始化標記
int j = (int)(label.length + 1)*label.length/2;
weight = new int[j];//用於儲存待排序邊的權值,陣列長度m=(n+1)*n*0.5,其中節點個數為n
index_1 = new int[j];//用於儲存邊的兩個節點
index_2 = new int[j];
result = "最小生成樹的邊是:"+"/n";//記錄最小生成樹的邊
}public string get_result()//獲得變數result
//把邊按權排序,graphic是list_graphic
public int sort()
}a = new int[index - 1];
a = address_sort(weight,weight.length);
return a;
}public int address_sort(int a,int n)//位址排序
int t;
int k;
for(int j = 0 ; j < n-1; j++)}}
return res;
}public void min_tree()//求最小生成樹}}
else}}
}else}}
public boolean judge(int a)//判斷標記是否都是0
}return true;
}public static void main(string args) //主函式
{class_kruskal ck = new class_kruskal();
ck.min_tree();
system.out.println(ck.get_result());
kruskal演算法(C 實現)
templatebool kruskal edgenodet next i,j,c 把邊放到最小堆 minheap h 1 h.initialize e,e,e unionfind u n k 0 while e k n 1 deactivatepos h.deactivate return k n...
Kruskal演算法(c 實現)
演算法原理 1.將邊的權值從小到大排列 2.構造輔助陣列root n n為節點個數 3.按照邊的權值從小到大的順序考察各條邊 4.關鍵 如何判別被考察邊的兩個頂點是否位於兩個連通分量 用到輔助函式 先將輔助函式各項初始化為 1,如果root i 為 1 則頂點就為該連通分量的 跟 對於邊 u,v 設...
Kruskal演算法的設計與實現
功能模組 kruskal 演算法的設計與實現 win tc除錯通過 include stdio.h include conio.h define max 30 typedef struct edge typedef struct graph typedef struct node alist voi...