/** * Constructs a new {@link BFSForCentrality} object. * * @param graph The graph. * @param stack Stack which returns nodes in order of non-increasing * distance from the start node */ public BFSForCentrality(Graph<VUCent, E> graph, Stack<VUCent> stack) { super(graph); this.stack = stack; this.pathsFromStartNode = new UnweightedPathLengthData(); }
@Override public double getAverageLength() { if (getCount() == 0) { throw new IllegalStateException(SPL_ERROR); } return ((double) getTotalLength()) / getCount(); } }
@Override protected void init(VUCent startNode) { super.init(startNode); stack.clear(); pathsFromStartNode.clear(); }
@Override protected void firstTimeFoundStep( final VUCent current, final VUCent neighbor) { // Add this to the path length data. (For closeness) pathsFromStartNode.addSPLength(neighbor.getDistance()); }