import java.util.LinkedList; public class IntTree { private Node root; private static class Node { public int key; public Node left, right; public Node(int key) { this.key = key; } } public void printInOrder() { printInOrder(root); } private void printInOrder(Node n) { if (n == null) return; printInOrder(n.left); System.out.println(n.key); printInOrder(n.right); } // Recall the definitions of height and depth. // in the BST with level order traversal "41 21 61 11 31", // node 41 has depth 0, height 2 // node 21 has depth 1, height 1 // node 61 has depth 1, height 0 // node 11 has depth 2, height 0 // node 31 has depth 2, height 0 // height of the whole tree is the height of the root /* * Mutator functions HINT: This is easier to write if the helper function * returns Node, rather than void similar to recursive mutator methods on lists. * Removes all subtrees with odd roots (if node is odd, remove it and its * descendants) A node is odd if it has an odd key. If the root is odd, then you * should end up with the empty tree. For example, when called on a BST with * level order traversal 50 25 100 12 37 150 127 the tree will be changed to * have level order traversal 50 100 150 */ public void removeOddSubtrees() { // TODO throw new RuntimeException("Not implemented"); } • You are not allowed to use any kind of loop in your solutions. • You may not modify the Node class in any way • You may not modify the function headers of any of the functions already present in the file. • You may not add any fields to the IntTree class.
import java.util.LinkedList;
public class IntTree {
private Node root;
private static class Node {
public int key;
public Node left, right;
public Node(int key) {
this.key = key;
}
}
public void printInOrder() {
printInOrder(root);
}
private void printInOrder(Node n) {
if (n == null)
return;
printInOrder(n.left);
System.out.println(n.key);
printInOrder(n.right);
}
// Recall the definitions of height and depth.
// in the BST with level order traversal "41 21 61 11 31",
// node 41 has depth 0, height 2
// node 21 has depth 1, height 1
// node 61 has depth 1, height 0
// node 11 has depth 2, height 0
// node 31 has depth 2, height 0
// height of the whole tree is the height of the root
/*
* Mutator functions HINT: This is easier to write if the helper function
* returns Node, rather than void similar to recursive mutator methods on lists.
* Removes all subtrees with odd roots (if node is odd, remove it and its
* descendants) A node is odd if it has an odd key. If the root is odd, then you
* should end up with the empty tree. For example, when called on a BST with
* level order traversal 50 25 100 12 37 150 127 the tree will be changed to
* have level order traversal 50 100 150
*/
public void removeOddSubtrees() {
// TODO
throw new RuntimeException("Not implemented");
}
• You are not allowed to use any kind of loop in your solutions.
• You may not modify the Node class in any way
• You may not modify the function headers of any of the functions already present in the file.
• You may not add any fields to the IntTree class.
Step by step
Solved in 4 steps with 3 images