Write a program that takes any word, like SUSHI, and builds a binary search tree in alphabetical order,
allowing duplicate letters, which will be inserted to the left when the duplicate is encountered. Then output
the string in a vertical tree-like form. Input will be a one-word string (all caps) greater than or equal to 1
letter(s) long. Assume proper input. The vertical tree should consist of a line of nodes, followed by a line of
/ and \ characters indicating relationships, followed by a line of nodes, etc. Assume all nodes are
representable as a single character. Adjacent nodes on the lowest level should be separated by at least one
space, nodes further up should be separated as appropriate. Nodes with two children should be placed
precisely in the middle of their direct children. Relationship slashes should be halfway between the parent
and the appropriate child (round whichever way you want). The user should be able to visualize the levels
lining up with each other. In C++, use the C++ string class for input. A tree data structure must be used.
Refer to the sample output below.
Sample Runs:
Enter a word: JAMES
Extracted text: Enter a word: INVITATIONAL I A V A I L T Enter a word: SUSHI U H. I
Extracted text: Do not need to show sample runs. Only submit .java or .cpp file. Write a program that takes any word, like SUSHI, and builds a binary search tree in alphabetical order, allowing duplicate letters, which will be inserted to the left when the duplicate is encountered. Then output the string in a vertical tree-like form. Input will be a one-word string (all caps) greater than or equal to 1 letter(s) long. Assume proper input. The vertical tree should consist of a line of nodes, followed by a line of / and \ characters indicating relationships, followed by a line of nodes, etc. Assume all nodes are representable as a single character. Adjacent nodes on the lowest level should be separated by at least one space, nodes further up should be separated as appropriate. Nodes with two children should be placed precisely in the middle of their direct children. Relationship slashes should be halfway between the parent and the appropriate child (round whichever way you want). The user should be able to visualize the levels lining up with each other. In C++, use the C++ string class for input. A tree data structure must be used. Refer to the sample output below. Sample Runs: Enter a word: JAMES A