Example #1
0
        private void RecorridoPreOrdenInterno(RecorridoDelegate <T> _recorrido, Nodo <T> _actual)
        {
            if (_actual != null)
            {
                _recorrido(_actual);

                RecorridoEnOrdenInterno(_recorrido, _actual.izquierdo);

                RecorridoEnOrdenInterno(_recorrido, _actual.derecho);
            }
        }
Example #2
0
        public void recorrer_interno(Nodo <T, K> nodo_start, RecorridoDelegate <T, K> recorrido)
        {
            if (nodo_start != null)
            {
                for (int j = 0; j <= nodo_start.elementos.Count - 1; j++)
                {
                    recorrido(nodo_start.elementos.ElementAt(j).Value);
                }

                for (int j = 0; j <= nodo_start.hijos.Count - 1; j++)
                {
                    recorrer_interno(nodo_start.hijos.ElementAt(j).Value, recorrido);
                }
            }
        }
Example #3
0
        public void recorrer_interno(Nodo <T, K> nodo_start, RecorridoDelegate <T, K> recorrido)
        {
            if (nodo_start != null)
            {
                for (int i = 0; i <= nodo_start.elementos.Count - 1; i++)
                {
                    if (nodo_start.hijos.Count != 0)
                    {
                        recorrer_interno(nodo_start.hijos.ElementAt(i).Value, recorrido);
                    }

                    recorrido(nodo_start.elementos.ElementAt(i).Value);
                }
                if (nodo_start.hijos.Count != 0)
                {
                    recorrer_interno(nodo_start.hijos.ElementAt(nodo_start.hijos.Count - 1).Value, recorrido);
                }
            }
        }
Example #4
0
 public void PreOrden(RecorridoDelegate <T> _recorrido)
 {
     RecorridoPreOrdenInterno(_recorrido, Raiz);
 }
Example #5
0
 public void recorrer(RecorridoDelegate <T, K> recorrido)
 {
     recorrer_interno(raiz, recorrido);
 }
Example #6
0
 public void PostOrden(RecorridoDelegate <T> _recorrido)
 {
     RecorridoPostOrdenInterno(_recorrido, _raiz);
 }
Example #7
0
 public void EnOrden(RecorridoDelegate <T, K> _recorrido)
 {
     RecorridoEnOrdenInterno(_recorrido, Raiz);
 }