Write a java program to construct an English Dictionary using Binary Search Tree. It should contain the following functionalities:
- This program must store words with letter strings and their respective meanings
- You have to create an English dictionary for more than 100 words.
- After making the Dictionary tree, the program should retrieve and print the meaning of a queried word.
- If a user wants to delete any word from a tree your program should delete that word from the dictionary and balanced the tree if needed.
- The Dictionary tree should be balanced at the same time.
- Use file handling and save elements of tree in a file in pre-order/post-order/in-order and make a function start () which inserts all elements from file to BST as you open the program.