public static <T extends Node> void buildDistanceMap( Collection<T> nodes, Node focus ) { for (T node : nodes) { node.distance( Integer.MAX_VALUE ); } LinkedList<Node> queue = new LinkedList<Node>(); focus.distance( 0 ); queue.add( focus ); while (!queue.isEmpty()) { Node node = queue.poll(); int distance = node.distance(); int price = node.price(); for (Node edge : node.edges()) { if (edge.distance() > distance + price) { queue.add( edge ); edge.distance( distance + price ); } } } }
public static <T extends Node> void buildDistanceMap( Collection<T> nodes, Node focus ) { for (T node : nodes) { node.distance( Integer.MAX_VALUE ); } LinkedList<Node> queue = new LinkedList<Node>(); focus.distance( 0 ); queue.add( focus ); while (!queue.isEmpty()) { Node node = queue.poll(); int distance = node.distance(); int price = node.price(); for (Node edge : node.edges()) { if (edge.distance() > distance + price) { queue.add( edge ); edge.distance( distance + price ); } } } }
public static <T extends Node> void buildDistanceMap( Collection<T> nodes, Node focus ) { for (T node : nodes) { node.distance( Integer.MAX_VALUE ); } LinkedList<Node> queue = new LinkedList<Node>(); focus.distance( 0 ); queue.add( focus ); while (!queue.isEmpty()) { Node node = queue.poll(); int distance = node.distance(); int price = node.price(); for (Node edge : node.edges()) { if (edge.distance() > distance + price) { queue.add( edge ); edge.distance( distance + price ); } } } }
public static <T extends Node> void setPrice( List<T> nodes, int value ) { for (T node : nodes) { node.price( value ); } }
public static <T extends Node> void setPrice( List<T> nodes, int value ) { for (T node : nodes) { node.price( value ); } }
public static <T extends Node> void setPrice( List<T> nodes, int value ) { for (T node : nodes) { node.price( value ); } }