1.带权图:要引入带权图,首先要引入最小生成树,当所有的边拥有相同的权值时。问题变得简单了,算法可以选择任意一条边加入最小生成树。但是当边有不同的权值时,需要用一些算法决策来选择正确的边。

2.带权图构建最小生成树算法:

  2.1.从一个顶点开始,把它放入树的集合中,然后重复做下面的事情:

    2.1.1.找到从最新的顶点到其他顶点的所有边,这些顶点不能在树的集合中,把这些边放入优先级队列,

    2.1.2.找出权值最小的边,把它和它所到达的顶点放入树的集合中。重复直到所有顶点都在树的集合中。

3.实现代码:

  3.1.Edge.java

 1 package com.cn.powergraph;
 2 /**
 3  * 带权图的边类
 4  * @author Administrator
 5  *
 6  */
 7 public class Edge {
 8 public int srcVert;
 9 public int destVert;
10 public int distance;
11 public Edge(int sv,int dv,int d){
12     srcVert = sv;
13     destVert = dv;
14     distance = d;
15 }
16 }
View Code

相关文章: