- Iterator Personalizado (TreeIterator)
- Impressão da Árvore (TreePrinter)
- Menu de Interação (Program)
- TreeIterator: Implementa a lógica de iteração personalizada e fornece métodos para percorrer a árvore de maneiras diferentes.
- IterateTopToBottom e IterateBottomToTopInBranch: Demonstram a flexibilidade do padrão Iterator ao permitir iterações em diferentes direções.
- TreePrinter: Não é diretamente parte do padrão Iterator, mas é usado para visualizar os resultados da iteração.
- MenuOptions e Main: Demonstra a aplicação prática do Iterator na interação do usuário, destacando como os métodos MoveNext e Current são utilizados.
O código global é um exemplo efetivo de aplicação do padrão Iterator em uma árvore, permitindo iterações flexíveis e destacando os nós visitados durante a iteração.