×îСÉú³ÉÊ÷ 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
Ïà¹ØÎĵµ£º
ÔÚ¿ª·¢Öбàд¸ßÐÔÄÜJavaµÄ×¢Òâµã
1.Òª°Ñ×¢Òâµã·Åµ½Éè¼ÆÉÏ.
2.²»ÒªÒÀÀµ±àÒëÆ÷µÄÓÅ»¯¼¼Êõ,ÕýÈ·µÄÀí½âÔËÐÐÆÚ´úÂë,À´Ìá¸ßµÄ´úÂëµÄÔËÐÐËÙ¶È.
3.¶Ô¶ÔÏóµÄ´´½¨³É±¾½µµ½×îµÍ(±ÈÈç:ºÏÀíÉè¼ÆÀàµÄ´óС¡¢ºÏÀíÉè¼ÆÀàµÄÉî¶È¡¢²»Òª´´½¨²»±ØÒªµÄ¶ÔÏóµÈµÈ¡£¡£)
4.¾¡Á¿Ê¹ÓÃStringBufferÁ¬½Ó×Ö·û´®¡£
5.½µµÍͬ²½´øÀ´µÄÐÔÄÜÓ°Ïì¡£
ÒÔÉÏÖ»Ê ......
×Ô¼ºÑо¿ÏÂverycdÏÂÔØÌ×·,·¢ÏÖÒ»¸ödownloads.txtÎļþͬ²½ÕýÔÚÏÂÔØµÄ×ÊÔ´ÐÅÏ¢,ÏÂÔØÍê³Éºó×Ô¶¯É¾³ýÀïÃæµÄ¼Ç¼,Õâ¾Í¼òµ¥¶àÁË.
˼·:¶Ádownloads.txtÎļþ,ÀûÓùؼü×Ö°ÑÀïÃæµÄ¼Ç¼·Ö¸îºó¼ÓÈëlist,Ñ¡Ôñ¼àÊÓµÄÎļþÃû,ÀûÓÃwhileÑ»·µÄµ¹¼ÆÊ±·½·¨ÒÔÎļþÃûΪ¹Ø¼ü×Ö´ÓlistÀﶨʱËÑË÷,Èç¹ûÏÂÔØÍê³É,µ÷ÓÃruntimeÀàÔËÐÐdosÃüÁîshutdown, ......
ºÜ¾ÃûÓÐ×öjavaµÄÏîÄ¿ÁË£¬½ñÌì¹äÁ˹äCSDNµÄÂÛ̳£¬ºÜÐÒÔ˵ÄÓöµ½ÕâÆªÎÄÕ£¬Ð´µÄ²»´í¡£Óм¸¸öÒªµã£¬ÒÔǰÀí½âµÄ¶¼²»Í¸¡£ËùÒÔÊÕ²ØÁË£¬Ð»Ð»ÂÛ̳ID£ºÎª yrjxm007 µÄÍøÓÑ¡£ ¶ÔÓÚÕâ¸öϵÁÐÀïµÄÎÊÌ⣬ÿ¸öѧJavaµÄÈ˶¼Ó¦¸Ã¸ã¶®¡£µ±È»£¬Èç¹ûÖ»ÊÇѧJavaÍæÍæ¾ÍÎÞËùνÁË¡£Èç¹ûÄãÈÏΪ×Ô¼ºÒѾ³¬Ô½³õѧÕßÁË£¬È´²»ºÜ¶®ÕâЩÎÊÌ⣬Ç뽫Äã×Ô¼ºÖØ ......
²ÉÓÃÓûÑïÏÈÒÖµÄÊÖ·¨Ì¸Ì¸java:
javaûÓÐÖ¸ÕëÖ»ÓÐÒýÓÃÊÇ×î´óµÄ°Ü±Ê.ÕýÒòΪûÓÐÖ¸Õë,ºÜ¶à²Ù×÷ÒªÓØ»ØÍñת;À¬»øÊÕ¼¯»úÖÆÒ²¾õµÃÊǼ¦Àß,д¸öÎö¹¹º¯ÊýÕæµÄÄÇô¸´ÔÓÂð, ÓбØÒªÎþÉüÁé»îÐÔÂð;º¯Êýµ÷ÓõĴú¼ÛÖ®¸ßÈÃÈË×¥¿ñ
µ«ÎÒ»¹ÊÇÑ¡ÔñÁËËý:
javaµÄ´¿ÃæÏò¶ÔÏóÌØ ......
Bean Serializable Interface µÄ½Ó¿ÚÈÃBEAN¿ÉÒÔ´®Ðл¯£¬½«Æä±ä³ÉÒ»¸ö¿É±£´æÎªÒÔºóʹÓõĶþ½øÖÆÁ÷¡£µ±Ò»¸öBEAN±»ÏµÁл¯µ½´ÅÅÌÉÏ»òÕ߯äËûÈκεط½£¬Æä״̬±»±£´æÆðÀ´£¬ÆäÖеÄÊôÐÔÖµÒ²²»»á¸Ä±ä¡£ÔÚBEANµÄ¹æ·¶ÖУ¬JSP²¢Ã»ÓÐÒªÇóBEANʵÏÖSerializable½Ó¿Ú¡£µ«ÊÇ£¬Èç¹ûÄúÏ£Íû×Ô¼º¿ØÖÆÄúËù´´½¨µÄ×é¼þµÄserialization½ø³Ì£¬»òÕßÄúÏë ......