public void Arbol3()
        {
            Arbol arbol = new Arbol();
            Nodo  raiz  = arbol.Agregar("K", null); // se agrega el nodo raiz K

            arbol.Agregar("B", raiz);               //se agregan B, A y C como nodos hijos de la raiz
            arbol.Agregar("A", raiz);
            arbol.Agregar("C", raiz);

            Nodo subRaizD = arbol.Agregar("D", raiz);     // se agrega D como hijo de la raiz, pero tambien como raiz de un subarbol
            Nodo subRaizI = arbol.Agregar("I", subRaizD); // se agrega I como hijo de la subraiz D, pero tambien como raiz de un subarbol

            arbol.Agregar("J", subRaizI);                 // se agrega J como hijo del nodo I
            Nodo subRaizE = arbol.Agregar("E", subRaizD); // se agrega E como hijo del nodo D, pero tambien como raiz de un subarbol

            arbol.Agregar("F", subRaizE);                 // se agrega F como hijo del nodo subraiz E
            Nodo subRaizG = arbol.Agregar("G", subRaizE); // se agrega G como hijo del nodo E, pero tambien como raiz de un subarbol

            arbol.Agregar("H", subRaizG);                 // se agrega H como hijo del nodo G

            arbol.Imprimir(raiz);
        }
        static void Main(string[] args)
        {
            int   opc   = 0;
            Arbol arbol = new Arbol();                                                             //Creamos objeto arbol

            Console.Write("Ingrese que arbol quiere analizar: \nA) = 1 \nB) = 2 \nC) = 3 \nR = "); //Menu
            opc = int.Parse(Console.ReadLine());

            if (opc == 1)                              //Si elige 1, arbol a)
            {
                Nodo raiz = arbol.Insertar("E", null); //Nodo raiz

                arbol.Insertar("F", raiz);
                Nodo n = arbol.Insertar("A", raiz);
                arbol.Insertar("B", n);
                arbol.Insertar("C", n);
                arbol.Insertar("D", n);

                Console.WriteLine();
                arbol.Imprimir(raiz);                                            //Mandamos a llamar al Metodo imprimir para mostar el arbol en orden

                Console.WriteLine("Altura del arbol: {0}", arbol.Altura2(raiz)); //Metodo para calcular altura
                Console.WriteLine("Numero de Niveles: {0}", arbol.Nivel2(raiz)); //Metodo para calcular nivel
                arbol.Recorrido(opc);                                            //Imprime recorrido mas largo

                //arbol.Recorrido(raiz);
                //arbol.Imprimir2();
            }

            if (opc == 2)                              //Si elige 2, arbol b)
            {
                Nodo raiz = arbol.Insertar("C", null); //Nodo raiz
                Nodo n    = arbol.Insertar("A", raiz);
                Nodo j    = arbol.Insertar("B", n);
                arbol.Insertar("E", j);

                arbol.Insertar("G", raiz);
                arbol.Insertar("F", raiz);
                arbol.Insertar("D", raiz);

                Console.WriteLine();
                arbol.Imprimir(raiz);                                            //Mandamos a llamar al Metodo imprimir para mostar el arbol en orden
                Console.WriteLine("Altura del arbol: {0}", arbol.Altura2(raiz)); //Metodo para calcular altura
                Console.WriteLine("Numero de Niveles: {0}", arbol.Nivel2(raiz)); //Metodo para calcular nivel
                arbol.Recorrido(opc);                                            //Imprime recorrido mas largo

                //arbol.Recorrido(raiz);
                //arbol.Imprimir2();
            }

            if (opc == 3)                              //Si elige 2, arbol b)
            {
                Nodo raiz = arbol.Insertar("K", null); //Nodo raiz
                arbol.Insertar("B", raiz);
                Nodo d = arbol.Insertar("D", raiz);
                Nodo i = arbol.Insertar("I", d);
                arbol.Insertar("J", i);

                Nodo e = arbol.Insertar("E", d);
                Nodo g = arbol.Insertar("G", e);
                arbol.Insertar("H", g);
                arbol.Insertar("F", e);

                arbol.Insertar("C", raiz);
                arbol.Insertar("A", raiz);

                Console.WriteLine();
                arbol.Imprimir(raiz);                                                //Mandamos a llamar al Metodo imprimir para mostar el arbol en orden
                Console.WriteLine("Altura del arbol: {0}", arbol.Altura2(raiz) - 1); //Metodo para calcular altura
                Console.WriteLine("Numero de Niveles: {0}", arbol.Nivel2(raiz) - 1); //Metodo para calcular nivel
                arbol.Recorrido(opc);                                                //Imprime recorrido mas largo

                //arbol.Recorrido(raiz); arbol.Recorrido(raiz);
                //arbol.Imprimir2();
            }

            Console.ReadKey();
            //Codigo basado en:
            //https://www.youtube.com/watch?v=90qdczicwxw&fbclid=IwAR29A69kZL2_cgGyZkioN3cPq_GYO97PeYNOKpgIL_Mz0MZ7IssbUkIzZks
        }