假设给定的是一个 N * 3的矩阵:
边的权重值 从哪里来 指向哪里 { [5, 0, 1] [6, 1, 2] ... }
利用这个矩阵里面的信息来形成一个图结构。代码实现如下:
图的结构: 结点结构
/**
* 图的结构之: 结点
*/
public class Node {
//结点值
public int value;
//结点的入度
public int in;
//结点的出度
public int out;
//下一个指向的集合
public HashSet<Node> nexts;
//当前结点所拥有的边集合
public HashSet<Edge> edges;
public Node(int value){
this.value = value;
this.in = 0;
this.out = 0;
nexts = new HashSet<>();
edges = new HashSet<>();
}
}
图的结构:边结构
/**
* 图的结构之: 边
*/
public class Edge {
//权重值
private int weight;
//从哪里来
private Node from;
//指向哪里去
private Node to;
public Ed