Question: public void printTree() { if(root == null) { System.out.println(Tree is empty); return; } LinkedList queue = new LinkedList(); Vector nodes = new Vector(); int level

public void printTree() { if(root == null) { System.out.println("Tree is empty"); return; } LinkedList queue = new LinkedList(); Vector nodes = new Vector(); int level = 0;
// enqueue the root queue.add(root);
// now print out each level - if a node is null, just enqueue null while(level
/* * printLevel */ private void printLevel(Vector nodes, int level) { // tab over for the first node in the level //for(int i=0; i
// printing out the node - no sibling if(nodes.size() == 1) { TreeNode tmp = (TreeNode)nodes.get(0); System.out.print(tmp.key + "(" + tmp.balFactor + ")"); }
// every other node has or could have a sibling else { for(int i=0; i // print out the first node if it exists if(tmp != null) System.out.print(tmp.key + "(" + tmp.balFactor + ")"); else System.out.print("\t"); // tab over to it's sibling for(int j=0; j // now print out the sibling if it exists tmp = (TreeNode)nodes.get(i+1); if(tmp != null) System.out.print(tmp.key + "(" + tmp.balFactor + ")"); else System.out.print("\t"); // tab over to it's cousin for(int j=0; j // done with this level System.out.print(" "); } /* * minValue */ private int minValue(int x, int y) { return (x y) ? x : y; } }
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
