Refatora um algoritmo de construção de árvores.
Alguns fóruns da web têm um layout em árvore, por isso as publicações são apresentadas como uma árvore. No entanto, as publicações são normalmente guardadas numa base de dados como um conjunto não ordenado de registos. Assim, ao apresentar as publicações ao utilizador, é preciso reconstruir a estrutura em árvore.
O teu trabalho será refatorar um pedaço de código que funciona, mas é lento e feio, e que implementa a lógica de construção de árvores para registos fortemente abstraídos. Os registos contêm apenas um número de ID e um número de ID do pai. O número de ID está sempre entre 0 (inclusive) e o comprimento da lista de registos (exclusive). Todos os registos têm um ID do pai inferior ao seu próprio ID, exceto o registo raiz, cujo ID do pai é igual ao seu próprio ID.
Um exemplo de árvore:
root (ID: 0, parent ID: 0)
|-- child1 (ID: 1, parent ID: 0)
| |-- grandchild1 (ID: 2, parent ID: 1)
| +-- grandchild2 (ID: 4, parent ID: 1)
+-- child2 (ID: 3, parent ID: 0)
| +-- grandchild3 (ID: 6, parent ID: 3)
+-- child3 (ID: 5, parent ID: 0)
Inscreve-te no Exercism para aprenderes e dominares Visual Basic com 113 exercícios, e mentoria humana real, tudo grátis.