private Node chooseNextNode() { int max = Integer.MAX_VALUE; Node tmpnode = null; for (Node node : this.allNodes) { if (!node.isVisited() && node.getDistance() < max && node.distance != -1) { max = node.getDistance(); tmpnode = node; } } return tmpnode; }
private void distanz_update() { Node aktnode = this.allNodes[this.startNode]; do { // Solange es noch unbesuchte Knoten gibt aktnode.setVisited(); // Alle Nachbarn des aktuellen Knotens for (Node node : aktnode.getNeighbors()) { if (node.getDistance() > aktnode.getDistance() + graph.getDistance(aktnode.getId(), node.getId()) || node.getDistance() == -1) { node.setDistance( aktnode.getDistance() + graph.getDistance(aktnode.getId(), node.getId())); node.setPredecessor(aktnode); } } aktnode = chooseNextNode(); } while (unvisitedNodes()); }