You should then write a program that allows a user to interact with an instance of the AVL you have implemented. This program should implement a text-based interface that allows the user to:
1. Create an empty AVL. This should warn the user they are deleting the existing AVL and ask them if they wish to proceed. Remind the user they can save the contents of their AVL to a file. 2. Insert a string into the current AVL. 3. Search for a string in the current AVL. 4. Remove a string from the current AVL. 5. Output the in-order traversal of the current AVL. 6. Output the pre-order traversal of the current AVL. 7. Output the post-order traversal of the current AVL. 8. Save the post-order traversal of the current AVL to a user specified filename. 9. Read the post-order traversal from a user specified filename and reconstruct a functional AVL duplicate of the saved AVL 10. Exit