El presente código contiene una representación de un árbol de números. Un árbol es una estructura que consiste de nodos conectados. Cada nodo contiene un dato (número) y una lista de nodos hijos, como muestra el siguiente diagrama:
Un nodo que no tiene hijos diremos que es una "hoja".
Por ejemplo, puedo utilizar un árbol para representar la siguiente estructura de números enteros:
1
/ \
2 3
El patrón Visitor es un excelente aliado cuando necesitamos recorrer estructuras y realizar operaciones sobre ellas. Por ejemplo, puedo utilizar un Visitor para recorrer el árbol del ejemplo anterior y calcular la suma de sus nodos, cuyo resultado es 6.
Como primer objetivo, deberán modificar el programa provisto para que una instancia de Node almacene:
- un objeto de tipo
Person(que deberán crear ustedes) con nombre y edad. - la lista de nodos hijos.
Crear en el Program.cs una estuctura de árbol de Person para representar un árbol genealógico. Incluyan al menos 8 personas.
Para esta segunda parte deberán aplicar el patrón Visitor, implementando un visitador para calcular la suma de las edades de todos los integrantes de la familia.
Para esta última parte, deberán crear 2 nuevos visitadores:
1️⃣ El primero vistará el árbol genealógico para determinar qué hijo es más grande (hijo = nodos hojas)
2️⃣ El segundo visitará el árbol genealógico y determinará quién tiene el nombre más largo.
