Esempio n. 1
0
        public static bool EstaBalanceado(Nodo <Entero> nodo)
        {
            var mm = new DetMinMax();

            mm.Minimo = int.MaxValue;
            mm.Maximo = int.MinValue;

            EncontrarMinMax(mm, nodo, 0);

            return((mm.Maximo - mm.Minimo <= 1) ? true : false);
        }
Esempio n. 2
0
        private static void EncontrarMinMax(DetMinMax mm, Nodo <Entero> node, int depth)
        {
            if (node == null)
            {
                return;
            }

            EncontrarMinMax(mm, node.izquierdo, depth + 1);
            EncontrarMinMax(mm, node.derecho, depth + 1);

            // En el nodo final
            if (node.izquierdo == null || node.derecho == null)
            {
                if (mm.Minimo > depth)
                {
                    mm.Minimo = depth;
                }
                if (mm.Maximo < depth)
                {
                    mm.Maximo = depth;
                }
            }
        }