Note: Make sure to test your code for edge cases (e.g., empty arrays or trees, single-
element searches, duplicate inserts, etc.).
1. (50 points) Implement the Binary Search algorithm using both the iterative and
recursive approaches. These two methods must be part of a class called
SearchUtils, and both methods must be marked public and static.
2. (50 points) Update your existing BST class to include iterative implementations for
the insert and search operations. These methods should operate on the same
underlying BST structure (i.e., use the same root pointer as the recursive methods).
Do not create a new tree.