最小生成树
问题描述:一个有 n 个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有 n 个结点,并且有保持图连通的最少的边。
实现思路为将边封装成对象,包含两个端点和线段的权值,然后把初始化所有线段将现端存入列表中,将列表按线段的权值进行从小到大排序,然后依次尝试添加线段,如果判断结果为线段是多余的,则本次不添加。判断的思路为把添加的线段的端点全部加入到一个字符串中,如果字符串中没有本线段的两个端点任意一个端点或两个端点,则把本条线段添加入结果集中,并添加到结果字符串。
话不多说,直接上 bug
。
package test;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
public class minGradeTree {
public static List<Good> startList = new ArrayList<Good>();
public static List<String> tempList = new ArrayList<String>();
public static List<Object> resultList = new ArrayList<Object>();
public static void init() {
startList.add(new Good(1, 3, 1));
startList.add(new Good(1, 2, 6));
startList.add(new Good(1,