public void recorrer_Hijo(NodoIndividual <T> valor, RecorridoDlg <T> recorrido)
        {
            if (valor.derecho != null)
            {
                for (int j = 0; j <= valor.derecho.valores.Length - 1; j++)
                {
                    NodoIndividual <T> aux = valor.derecho.valores[j];
                    if (aux != null)
                    {
                        recorrido(aux);
                        recorrer_Hijo(aux, recorrido);
                    }
                }
            }

            if (valor.izquierdo != null)
            {
                for (int j = 0; j <= valor.izquierdo.valores.Length - 1; j++)
                {
                    NodoIndividual <T> aux = valor.izquierdo.valores[j];
                    if (aux != null)
                    {
                        recorrido(aux);
                        recorrer_Hijo(aux, recorrido);
                    }
                }
            }
        }
示例#2
0
        private void RecorridoPreOrdenInterno(RecorridoDlg <T> recorrido, Nodo <T> actual)
        {
            if (actual != null)
            {
                recorrido(actual);

                RecorridoEnOrdenInterno(recorrido, actual.izquierdo);

                RecorridoEnOrdenInterno(recorrido, actual.derecho);
            }
        }
 public void recorrer_interno(NodoLista <T> inicio, RecorridoDlg <T> recorrido)
 {
     if (inicio != null)
     {
         for (int j = 0; j <= inicio.valores.Length - 1; j++)
         {
             NodoIndividual <T> aux = inicio.valores[j];
             if (aux != null)
             {
                 recorrido(aux);
                 recorrer_Hijo(aux, recorrido);
             }
         }
     }
 }
示例#4
0
 public void EnOrden(RecorridoDlg <T> recorrido)
 {
     RecorridoEnOrdenInterno(recorrido, raiz);
 }
示例#5
0
 public void PostOrden(RecorridoDlg <T> recorrido)
 {
     RecorridoPostOrdenInterno(recorrido, raiz);
 }
 public void recorrer(RecorridoDlg <T> recorrido)
 {
     recorrer_interno(raiz, recorrido);
 }