Ois Daniel e Gabriel,
Legal!
Qual é o comportamento esperado de delete()?
Excelente que vocês estão refletindo sobre a implementação!
Por exemplo, para um determinado Node x, onde x.val == null, x.mid == null mas x.left != null e x.right != null, o que deve ser feito? Podemos simplesmente deixar o Node na TST, já que ele tem links para outras palavras
É uma alternativa aceitável.
Remover um nó apenas quando todos seu nós são null
.
Como vocês observaram, o ponto aqui é que se x.mid == null
, então x.c
não faz parte de nenhuma palavra o dicionário.
Portanto, a presença do nó x
na TST
é supérflua.
ou devemos excluir x e acomodar x.right e x.left de acordo?...
É uma alternativa bacana e mais divertida e desafiadora.
Qualquer alternativa é aceitável.
Eu acho àquela que realmente remove o nó é mais divertida e instrutiva.
Na prática, não sei o que é melhor e suponho que como tudo, dependa da aplicação.
Escolham a alternativa que preferírem.