/** * Walks the tree in post-order style. * @param node The starting element. * @param list The output of the walk. */ protected void walkPostorder(TreeNode node, List list) { List children = node.getChildren(); if(children!=null) { for(int i=0; i<children.size(); i++) { TreeNode child = (TreeNode)children.get(i); walkPostorder(child, list); } } list.add(node); } }
/** * Returns the tree as a List of node objects. The elements of the * List are generated from a pre-order traversal of the tree. * @return Tree elements. */ public List toList(String order) { List ret = new ArrayList(); if(root!=null) { if(PREORDER.equals(order)) { walkPreorder(root, ret); } else if(POSTORDER.equals(order)) { walkPostorder(root, ret); } } return ret; }