Java图的实现
在写图算法题目时候,题目有各种各样的方式表现成一个图,这种数据结构记录用java 的对象封装成一个实现类,在以后调用时直接用
public class Graph {
//节点
public HashMap<Integer , Node> nodes;
//边
public HashSet<Edge> edges;
public Graph(){
nodes = new HashMap<>();
edges = new HashSet<>();
}
}
public class Edge {
//边的权重
public int weight;
//边的起点
public Node from;
//边的终点
public Node to;
public Edge(int weight , Node from , Node to){
this.weight = weight;
this.from = from;
this.to = to ;
}
}
public class Node {
//图的值
public int value ;
//有向图 出入度有关系
//无向图 出入度无关系
//入度
public int in ;
//出度
public int out ;
//该节点的邻居节点
public ArrayList<Node> nexts;
//该节点所连接的边
public ArrayList<Edge> edges;
public Node(int value){
this.value = value;
in = 0 ;
out = 0 ;
nexts = new ArrayList<>();
edges = new ArrayList<>();
}
}