@Override public NetworkNode next() { final TraversalEntry traversalEntry = this.traversalStack.pop(); final NetworkNode networkNode = traversalEntry.networkNode; if (!this.traversalStack.isEmpty()) { final TraversalEntry parentTraversalEntry = this.traversalStack.peek(); parentTraversalEntry.increaseChildrenVisited(); if (parentTraversalEntry.getChildrenVisited() < parentTraversalEntry.getNetworkNode() .getNumberOfChildNodes()) { refillStack(); } } return networkNode; }
@Override public NetworkNode next() { final TraversalEntry traversalEntry = this.traversalStack.pop(); final NetworkNode networkNode = traversalEntry.networkNode; if (!this.traversalStack.isEmpty()) { final TraversalEntry parentTraversalEntry = this.traversalStack.peek(); parentTraversalEntry.increaseChildrenVisited(); if (parentTraversalEntry.getChildrenVisited() < parentTraversalEntry.getNetworkNode() .getNumberOfChildNodes()) { refillStack(); } } return networkNode; }
private void refillStack() { while (true) { final TraversalEntry traversalEntry = this.traversalStack.peek(); final NetworkNode networkNode = traversalEntry.getNetworkNode(); if (networkNode.isLeafNode()) { break; } final NetworkNode childNode = networkNode.getChildNode(traversalEntry.getChildrenVisited()); this.traversalStack.add(new TraversalEntry(childNode)); } }
private void refillStack() { while (true) { final TraversalEntry traversalEntry = this.traversalStack.peek(); final NetworkNode networkNode = traversalEntry.getNetworkNode(); if (networkNode.isLeafNode()) { break; } final NetworkNode childNode = networkNode.getChildNode(traversalEntry.getChildrenVisited()); this.traversalStack.add(new TraversalEntry(childNode)); } }