示例#1
0
        static void Main(string[] args)
        {
            Persona ruben = new Persona("Ruben", 67);
            Persona moria = new Persona("Moria", 40);

            Persona javier = new Persona("Javier", 15);
            Persona carlos = new Persona("Carlos", 88);

            Persona mia     = new Persona("Mia", 4);
            Persona santino = new Persona("Santino", 3);

            Persona nahuel = new Persona("Nahuel", 20);
            Persona mariam = new Persona("Miriam", 35);

            Node <Persona> nCarlos  = new Node <Persona>(carlos);
            Node <Persona> nRuben   = new Node <Persona>(ruben);
            Node <Persona> nMoria   = new Node <Persona>(moria);
            Node <Persona> nJavier  = new Node <Persona>(javier);
            Node <Persona> nNahuel  = new Node <Persona>(nahuel);
            Node <Persona> nSantino = new Node <Persona>(santino);
            Node <Persona> nMariam  = new Node <Persona>(mariam);
            Node <Persona> nMia     = new Node <Persona>(mia);

            nCarlos.AddChildren(nRuben);

            nRuben.AddChildren(nMoria);
            nRuben.AddChildren(nMariam);

            nMoria.AddChildren(nJavier);

            nMariam.AddChildren(nMia);
            nMariam.AddChildren(nSantino);
            nMariam.AddChildren(nNahuel);



            AgeVisitor ageVisitor = new AgeVisitor();

            nCarlos.accept(ageVisitor);
            Console.WriteLine($"La suma de edades es {ageVisitor.AgeTotal}");

            OldestSonVisitor oldVisitor = new OldestSonVisitor();

            nCarlos.accept(oldVisitor);
            Console.WriteLine($"El hijo más grande es {oldVisitor.Oldest.Nombre}");

            LongestNameVisitor nameVisitor = new LongestNameVisitor();

            nCarlos.accept(nameVisitor);
            Console.WriteLine($"El nombre más largo es {nameVisitor.LongName.Nombre}");
        }
示例#2
0
        static void Main(string[] args)
        {
            Person francisco = new Person("Francisco", 26);
            Person felipe    = new Person("Felipe", 1);
            Person matias    = new Person("Matias", 7);
            Person diego     = new Person("Diego", 4);
            Person juan      = new Person("Juan", 22);
            Person ana       = new Person("Ana", 25);
            Person pedro     = new Person("Pedro", 33);
            Person luis      = new Person("Luis", 44);
            Person agustin   = new Person("Agustin", 15);
            Person javi      = new Person("Javi", 70);
            Person cecilia   = new Person("Cecilia", 15);

            Node <Person> nodoFrancisco = new Node <Person>(francisco);
            Node <Person> nodoFelipe    = new Node <Person>(felipe);
            Node <Person> nodoMatias    = new Node <Person>(matias);
            Node <Person> nodoDiego     = new Node <Person>(diego);
            Node <Person> nodoJuan      = new Node <Person>(juan);
            Node <Person> nodoAna       = new Node <Person>(ana);
            Node <Person> nodoPedro     = new Node <Person>(pedro);
            Node <Person> nodoLuis      = new Node <Person>(luis);
            Node <Person> nodoAgustin   = new Node <Person>(agustin);
            Node <Person> nodoJavi      = new Node <Person>(javi);
            Node <Person> nodoCecilia   = new Node <Person>(cecilia);

            nodoJavi.AddChildren(nodoLuis);

            nodoLuis.AddChildren(nodoAna);
            nodoLuis.AddChildren(nodoJuan);
            nodoLuis.AddChildren(nodoFrancisco);
            nodoLuis.AddChildren(nodoPedro);

            nodoPedro.AddChildren(nodoAgustin);

            nodoFrancisco.AddChildren(nodoFelipe);
            nodoFrancisco.AddChildren(nodoCecilia);

            nodoAna.AddChildren(nodoMatias);

            nodoJuan.AddChildren(nodoDiego);


            //Mostrar en pantalla
            System.Console.WriteLine("\n\n\n");
            System.Console.WriteLine("**************************************************************************\n                             ARBOL GENEALOGICO\n**************************************************************************");

            PrinterVisitor pv = new PrinterVisitor();

            pv.Visit(nodoJavi);

            System.Console.WriteLine("\n**************************************************************************");

            FamilyAgeVisitor familyAge = new FamilyAgeVisitor();

            familyAge.Visit(nodoJavi);
            Console.WriteLine($"La suma de todas las edades es de {familyAge.FamilyAge} años");

            LongestNameVisitor longestName = new LongestNameVisitor();

            longestName.Visit(nodoJavi);
            Console.WriteLine($"El nombre más largo es \"{longestName.LName}\" con {longestName.LName.Length} letras");

            OldestChildVisitor oldestChild = new OldestChildVisitor();

            oldestChild.Visit(nodoJavi);

            oldestChild.printOlderChild(oldestChild);

            System.Console.WriteLine("**************************************************************************");
        }