adicionado: implementação bottom up.
adicionado: implementação top down.