ATE meia noite de 21/10
Dado a definição de uma arvore binária:
data data Tree a = Vazia | No a (Tree a) (Tree a) deriving (Eq, Show, Read)
Um arvore de busca binaria (abb) é uma arvore binária onde para todas as sub-árvores o valor armazenado na raiz é maior que todos os valores armazenados na subsub-árvore a esquerda e menor que todos os valores armazenados na subsub-arvore a direita.
Para este exercício a abb não precisa estar balanceada (ou seja não é um AVL ou uma arvore vermelha-negra, etc)
Implemente a função
removeabbif :: Ord a => (a -> Bool) -> Tree a -> Tree a
que remove da abb todos os nós onde a função dada como primeiro argumento retorna True
Lembre-se
não é preciso garantir o balanceamento da arvore.
remoção de uma folha é facil. Remoção de uma raiz, requer substituí-la por um valor apropriado (o maior do lado esquerdo ou o menor do lado direito)