();{allNodes.add(ne..._java graph 库">
当前位置:   article > 正文

java graph结构_graph: 一个对“图”数据结构进行操作的通用库

java graph 库

public MyNode(String nodeId) {

super(nodeId);

}

}

Node startNode = new MyNode("2");

Node endNode = new MyNode("9");

// 初始化图

Graph graph = new Graph() {

List allNodes = new ArrayList<>();

{

allNodes.add(new MyNode("0"));

allNodes.add(new MyNode("1"));

allNodes.add(new MyNode("2"));

allNodes.add(new MyNode("3"));

allNodes.add(new MyNode("4"));

allNodes.add(new MyNode("5"));

allNodes.add(new MyNode("6"));

allNodes.add(new MyNode("7"));

allNodes.add(new MyNode("8"));

allNodes.add(new MyNode("9"));

}

int[][] edgs = new int[][] {

new int[] { 0, 2, 3, -1, -1, -1, -1, -1, -1, -1 },

new int[] { 2, 0, 5, 1, -1, -1, -1, -1, -1, -1 },

new int[] { 3, 5, 0, 4, -1, -1, 2, -1, -1, -1 },

new int[] { -1, 1, 4, 0, 3, 1, -1, -1, -1, -1 },

new int[] { -1, -1, -1, 3, 0, -1, -1, 2, -1, -1 },

new int[] { -1, -1, -1, 1, -1, 0, -1, 4, -1, -1 },

new int[] { -1, -1, 2, -1, -1, -1, 0, -1, 2, -1 },

new int[] { -1, -1, -1, -1, 2, 4, -1, 0, -1, 3 },

new int[] { -1, -1, -1, -1, -1, -1, 2, -1, 0, 3 },

new int[] { -1, -1, -1, -1, -1, -1, -1, 3, 3, 0 } };

@Override

public List getNextNodes(Node curNode) {

List nextNodes = new ArrayList<>();

for (int j = 0; j < edgs[Integer.valueOf(curNode.getNodeId())].length; j++) {

int ed = edgs[Integer.valueOf(curNode.getNodeId())][j];

if (ed > 0) {

nextNodes.add(allNodes.get(j));

}

}

return nextNodes;

}

@Override

public double getWeight(Node fromNode, Node toNode) {

return edgs[Integer.valueOf(fromNode.getNodeId())][Integer

.valueOf(toNode.getNodeId())];

}

};

// 选择最短路径算法

ShortestPathByDijkstra dijkstra = new ShortestPathByDijkstra(graph);

// 得到最短路径

SWPath path = dijkstra.getShortestPath(startNode, endNode);

System.out.println(path);

}

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/408761
推荐阅读
相关标签
  

闽ICP备14008679号