COP 3530 Section U03 Spring 2017 Homework # 3 ============ Due: March 1st, 2017 Add the following 5 methods to the class BinaryNode. Insert your code in the BinaryNode class that is on this site and turn in the java file of the completed BinaryNode class. 1. Add the method postPlusIn to the BinaryNode class. The method has the header public static BinaryNode postPlusIn( T[] post, T[] in) and takes as input the postorder and the inorder traversals of a binary tree. The method constructs a tree that has these traversals and returns the root of the tree. It throws an IllegalArgumentException if it is not possible to construct the tree. Assume that the arrays have no duplicate items and no null items. 2. Add the method public void iterativePostOrder() to the BinaryNode class. The method prints the nodes of the tree with root this in postorder, without using recursion. 3. Add the method public void printByLevels() to the BinaryNode class. The method prints the nodes of the tree with root this using breadthsearch. Hint: Use a queue. 4. Add the method public static BinaryNode levelsPlusIn(T[] in, T[] levels) that takes as input the inorder traversal and the traversal by levels and reconstructs the tree. Throw an IllegalArgumentException if this cannot be done. Again, assume that no array has duplications or null items. 5. Two trees are isomorphic if one of them can be derived from the other by swapping some of the left and right children. Add the method public boolean isomorphic(BinaryNode r) to the class BinaryNode. The method returns true if the tree r is isomorphic to this and false otherwise. Some of the items may be null. Use the equals method to check for equality.