private int auxiliaryGetNumberOfNodes(GenericTreeNode<T> node) { int numberOfNodes = node.getNumberOfChildren(); for (GenericTreeNode<T> child : node.getChildren()) { numberOfNodes += auxiliaryGetNumberOfNodes(child); } return numberOfNodes; }
private GenericTreeNode<T> auxiliaryFind(GenericTreeNode<T> currentNode, T dataToFind) { GenericTreeNode<T> returnNode = null; int i = 0; if (currentNode.getData().equals(dataToFind)) { returnNode = currentNode; } else if (currentNode.hasChildren()) { i = 0; while (returnNode == null && i < currentNode.getNumberOfChildren()) { returnNode = auxiliaryFind(currentNode.getChildAt(i), dataToFind); i++; } } return returnNode; }
private void buildPostOrder(GenericTreeNode<T> node, List<GenericTreeNode<T>> traversalResult) { for (GenericTreeNode<T> child : node.getChildren()) { buildPostOrder(child, traversalResult); } traversalResult.add(node); }
private void buildPostOrderWithDepth( GenericTreeNode<T> node, Map<GenericTreeNode<T>, Integer> traversalResult, int depth) { for (GenericTreeNode<T> child : node.getChildren()) { buildPostOrderWithDepth(child, traversalResult, depth + 1); } traversalResult.put(node, depth); }