package Tutorial9; import java.util.*; public class BinaryTree { private Object value; private BinaryTree left = null; private BinaryTree right = null; public BinaryTree( Object o, BinaryTree l, BinaryTree r ) { value = o; left = l; right = r; } public Vector getPreorder() { Vector vec = new Vector(); return traversePreorder( this, vec ); } public Vector getInorder() { Vector vec = new Vector(); return traverseInorder( this, vec ); } public Vector getPostorder() { Vector vec = new Vector(); return traversePostorder( this, vec ); } private Vector traversePreorder( BinaryTree b, Vector v ) { if ( b != null ) { v.addElement( b.value ); traversePreorder( b.left, v ); traversePreorder( b.right, v ); } return v; } private Vector traverseInorder( BinaryTree b, Vector v ) { if ( b != null ) { traverseInorder( b.left, v ); v.addElement( b.value ); traverseInorder( b.right, v ); } return v; } private Vector traversePostorder( BinaryTree b, Vector v ) { if ( b != null ) { traversePostorder( b.left, v ); traversePostorder( b.right, v ); v.addElement( b.value ); } return v; } public static void main ( String [] args ) { BinaryTree l = new BinaryTree( "D", null, null ); BinaryTree r = new BinaryTree( "E", null, null ); l = new BinaryTree( "B", l, r ); BinaryTree l2 = new BinaryTree( "H", null, null ); BinaryTree r2 = new BinaryTree( "I", null, null ); l2 = new BinaryTree( "F", l2, r2 ); r2 = new BinaryTree( "G", null, null ); r = new BinaryTree( "C", l2, r2 ); BinaryTree root = new BinaryTree( "A", l, r ); Vector v1 = root.getPreorder(); System.out.println( "Recorrido preorder: " +v1 ); Vector v2 = root.getInorder(); System.out.println( "Recorrido inorder: " +v2 ); Vector v3 = root.getPostorder(); System.out.println( "Recorrido postorder: " +v3 ); } }