Source of 24.21.java


  1: // @author Frank M. Carrano, Timothy M. Henry
  2: // @version 5.0

  4: // Represent each leaf as a one-node tree
  5: BinaryTreeInterface<String> dTree = new BinaryTree<>();
  6: dTree.setTree("D", null, null);

  8: BinaryTreeInterface<String> fTree = new BinaryTree<>();
  9: fTree.setTree("F", null, null);

 11: BinaryTreeInterface<String> gTree = new BinaryTree<>();
 12: gTree.setTree("G", null, null);

 14: BinaryTreeInterface<String> hTree = new BinaryTree<>();
 15: hTree.setTree("H", null, null);

 17: BinaryTreeInterface<String> emptyTree = new BinaryTree<>();

 19: // Form larger subtrees
 20: BinaryTreeInterface<String> eTree = new BinaryTree<>();
 21: eTree.setTree("E", fTree, gTree); // Subtree rooted at E

 23: BinaryTreeInterface<String> bTree = new BinaryTree<>();
 24: bTree.setTree("B", dTree, eTree); // Subtree rooted at B

 26: BinaryTreeInterface<String> cTree = new BinaryTree<>();
 27: cTree.setTree("C", emptyTree, hTree); // Subtree rooted at C

 29: BinaryTreeInterface<String> aTree = new BinaryTree<>();
 30: aTree.setTree("A", bTree, cTree); // Desired tree rooted at A

 32: // Display root, height, number of nodes
 33: System.out.println("Root of tree contains " + aTree.getRootData());
 34: System.out.println("Height of tree is " + aTree.getHeight());
 35: System.out.println("Tree has " + aTree.getNumberOfNodes() + " nodes");

 37: // Display nodes in preorder
 38: System.out.println("A preorder traversal visits nodes in this order:");
 39: Iterator<String> preorder = aTree.getPreorderIterator();
 40: while (preorder.hasNext())
 41:    System.out.print(preorder.next() + " ");
 42: System.out.println();