Sua tarefa é implementar uma árvore de busca binária que armazene strings. A ordem de inserção deverá ser alfabética crescente, ou seja, se o valor do elemento da raiz for “iguana”, então a palavra “beterraba” deverá ser inserida na subárvore da esquerda, enquanto a palavra “pagode” deverá ser inserida na subárvore da direita.
Devem ser declaradas a struct e implementadas as seguintes funções da árvore:
• criar(): inicialização da árvore.
• buscar(): busca de um elemento na árvore.
• inserir(): inserção de um elemento na árvore.
• remover(): remove um elemento da lista.
• estaVazia(): retorna um booleano indicando se a árvore está vazia.
• ehEstritamenteBinaria(): retorna um booleano indicando se a árvore é estritamente binária.
• ehQuaseCompleta(): retorna um booleano indicando se a árvore é quase completa.
• ehCompletaCheia(): retorna um booleano indicando se a árvore é completa (cheia).
• preOrdem(): visita e imprime os elementos da árvore em PRÉ-ORDEM (“RED”).
• emOrdem(): visita e imprime os elementos da árvore EM-ORDEM (“ERD”).
• posOrdem(): visita e imprime os elementos da árvore em PÓS-ORDEM (“EDR”). Após implementar a estrutura de dados, escreva um programa em C/C++ que permita ao usuário executar as funções acima