×îСÉú³ÉÊ÷ PrimËã·¨ java´úÂëʵÏÖ
/*
*ÈÕÆÚ:2010-04-18 11:37
*¿ª·¢Õß:heroyan
*ÁªÏµ·½Ê½:zndxysf@126.com
*¹¦ÄÜ:ÎÞÏòͼ×îСÉú³ÉÊ÷PrimË㷨ʵÏÖ°¸Àý
*/
import java.util.Scanner;
import java.util.Arrays;
import java.util.ArrayList;
public class SpanningTree{
private static int MAX = 100;
private double cost[][] = new double[MAX][MAX];
private ArrayList<Edge> edge = new ArrayList<Edge>();
private int[] near = new int[MAX];
private static double INFINITY = 99999999.99;//¶¨ÒåÎÞÇî´ó
private double mincost = 0.0;//×îС³É±¾
private int n;//½áµã¸öÊý
public SpanningTree(){}
public static void main(String args[]){
SpanningTree sp = new SpanningTree();
sp.init();
sp.prim();
sp.print();
}
//³õʼ»¯
public void init(){
Scanner scan = new Scanner(System.in);
int p,q,w;
System.out.println("spanning tree begin!Input the node number:");
n = scan.nextInt();
//¶þάÊý×éµÄÌî³äҪעÒâ
for(int i = 0; i < MAX; ++i){
Arrays.fill(cost[i],INFINITY);
}
System.out.println("Input the graph(-1,-1,-1 to exit)");
while(true){
p = scan.nextInt();
q = scan.nextInt();
w = scan.nextInt();
if(p < 0 || q < 0 || w < 0){
break;
}
cost[p][q] = w;
cost[q][p] = w;
}
Edge tmp = getMinCostEdge();
edge.add(tmp);
p = tmp.start;
q = tmp.end;
mincost = cost[p][q];
for(int i = 1; i <= n; ++i){
if(cost[i][p] < cost[i][q]){
near[i] = p;
}else{
near[i] = q;
}
}
near[p] = near[q] = 0;
}
//ѰÕÒ×îС³É±¾µÄ±ß
public Edge getMinCostEdge(){
Edge tmp = new Edge();
double min = INFINITY;
for(int i = 1; i < n; ++i){
for(int j = i+1; j <= n; ++j){
if(cost[i][j] < min){
min = cost[i][j];
tmp.start = i;
tmp.end = j;
}
}
}
//System.out.println(min);
return tmp;
}
//primËã·¨Ö÷Ìå
public void prim(){
//ÕÒʣϵÄn-2Ìõ±ß
for(int i = 2; i < n; ++i){
double min = INFINITY;
Edge
Ïà¹ØÎĵµ£º
package ui;
import java.awt.AWTEvent;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
impor ......
Õ⼸ÌìµÄѧϰ ÈÃÎҸе½·¢ã£¬ÀÏʦ½²µÄºÜ¶à£¬×Ô¼º¾Í¸ù±¾ÎÞ·¨È¥Ë¼¿¼£¬Ö»ÄÜÒ»¸ö¾¢µÄÍùÀïÌý£¬×Ô¼º´úÂëÒ²²»Ôõô»á£¬ÀÏʦ½²¹ýµÄÄÜÓиöÓ¡Ïó£¬ ²»¹ý½ñÌ컹ºÃ£¬½²µ½ÁËJava»ù´¡¼ÓÇ¿£¬ÉÔ΢¸Ð¾õºÃµã£¬²¢²»ÊǺÜÄÑÀí½âÁË£¬½ñÌì¾Í¿ªÊ¼½ñÌì¿Î³ÌµÄ¸´Ï°ÁË£¬ÒªÏë½ø²½£¬Ö»ÓÐ×Ô¼º¼è¿àŬÁ¦À²£¡
È· ......
(1)JavaÖеÄÖ÷·½·¨public static void main(String args[])ΪʲôҪÓÃstaticÀ´ÐÞÊÎ
ÒòΪjavaÊÇÍêÈ«ÃæÏò¶ÔÏóÓïÑÔ,Õâ¸öÖ÷º¯ÊýÆäʵÊÇÒ»¸öÀàµÄ·½·¨,Õâ¸ö·½·¨ÔÚÀàûÓÐÉú³É¶ÔÏóµÄʱºò¾Í±ØÐë±»JVMµ÷ÓÃ,ËùÒÔËü±ØÐëÊǾ²Ì¬µÄ³ÉÔ±º¯Êý.
£¨2£©javaÓïÑÔÖеÄpublic static void main(String[] args) ×÷ÓÃÊÇʲô.Ëù×öµÄÊÂÇéÓÖÊÇʲ ......
ѧjavaÒѾÓÐÒ»¶Îʱ¼äÁË¡£Ñ§µÄ¶«Î÷²»¶à£¬µ«ÎÒûÏëµ½½ö½öÃæÏò¹ý³ÌµÄһЩ֪ʶ£¨Loops£©¾Í¿ÉÒÔ×ö³öÏñÎå×ÓÆåÕâÑùµÄÓÎÏ·£¬ÎÒ²»µÃ²»¸Ð̾javaÓïÑÔµÄ÷ÈÁ¦¡£ÌرðÊÇÁ˽⵽javaµÄÓ¦ÓÃÖ®¹â·º£¬Éæ¼°ÊÖ»ú£¬Ç¶Èëʽ¿ª·¢£¬pc£¬ÆóÒµ¼°·þÎñÆ÷µÈÖ®ºó£¬ÎÒ¸ü¼á¶¨ÁËѧϰjavaµÄ¾öÐÄ¡£µ«ÊÇÎÒÒ²µ£ÐÄ×Ô¼ºÑ§²»°¡ºÃ¡£ºÜ¶à¶«Î÷¶¼ÊÇÔÚÀÏʦµÄÀÏÁìµ¼ÏÂÍê³ÉµÄ£ ......
ÕâÊÇÎÒÔÚ°²×°ÍêUbuntu9.10ºó´ÓÍøÉÏËѵÄһЩ¹ØÓÚÅäÖÃJava¿ª·¢»·¾³µÄ×ÊÁÏ£¬ÔÚÕâÀïÒªÌØ±ð¸ÐлÔÎÄ×÷ÕßµÄÐÁÇÚÀͶ¯
Ï£ÍûÄܰ﷽±ã¸ü¶àµÄÈË£¬ÎÒ»áÔÚUbuntuµÄʹÓùý³ÌÖмÌÐøÊÕ¼¯ºÍ´´×÷һЩÏà¹ØÖªÊ¶£¬Ï£ÍûÄܶԴó¼ÒÓÐËù°ïÖú£¡£¡£¡
×ªÔØÇë±êÃ÷³ö´¦£º
xxm19820127
http://blog.csdn.net/xxm19820127/archive/201 ......