/** Let's make a tree, and print it out. * There are 2 constructors we can call -- we can create a tree with a * single node, or with 2 existing trees and a new node , we can make a * bigger tree. */ import java.util.*; public class Driver { public static void main(String [] args) { Tree one = new Tree(new Item("1")); Tree two = new Tree(new Item("2")); Tree three = new Tree(new Item("3")); Tree four = new Tree(new Item("4")); Tree difference = new Tree(new Item("-"), one, two); Tree product = new Tree(new Item("*"), three, four); Tree sum = new Tree(new Item("+"), difference, product); // default printout (preorder shown vertically) System.out.println(sum); // 3 traversals // When we traverse, we need to remember to call getData because // the node itself does not have toString. We're only interested in // seeing the data (string) within. Iterator preorder = sum.preorderIterator(); /* not implemented yet Iterator inorder = sum.inorderIterator(); Iterator postorder = sum.postorderIterator(); */ System.out.print("Preorder: "); while (preorder.hasNext()) System.out.print(((Node) preorder.next()).getData() + " "); /* not implemented yet System.out.print("\nInorder: "); while (inorder.hasNext()) System.out.print(((Node) inorder.next()).getData() + " "); System.out.print("\nPostorder: "); while (postorder.hasNext()) System.out.print(((Node) postorder.next()).getData() + " "); System.out.println(); */ } }