Advertisement
Guest User

Super corto! (Comparado con el otro por lo menos...)

a guest
Apr 24th, 2016
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.    PROCEDURE BuscarCamino(pos: Posicion; l: Lista; a: Binario; VAR c: CARDINAL);
  2.    BEGIN    
  3.       IF a # NIL AND EsPosicionLista(pos)
  4.          IF NumeroInfo(InfoLista(pos, l)) = NumeroInfo(a^.info)) THEN
  5.             IF EsHoja(a) AND EsFinalLista(pos, l) THEN
  6.                 c := c + 1;
  7.             ELSE
  8.                 BuscarCamino(Siguiente(pos, l), l, a^.derecho, c);
  9.                 BuscarCamino(Siguiente(pos, l), l, a^.izquierdo, c);
  10.             END;
  11.          END;
  12.       END;
  13.    END BuscarCamino;
  14.  
  15. PROCEDURE CantidadCaminos (l: Lista; a: Binario): CARDINAL;
  16. (* Devuelve la cantidad de caminos de 'a', desde la raiz hasta una hoja, que
  17.    tienen emparejamiento numerico con 'l'.
  18.    Decimos que hay una emparejamiento numerico entre un camino en un arbol y
  19.    una lista si, al recorrer ambos y en cada paso, el dato numerico del
  20.    elemento del camino es igual al dato numerico del elemento de la lista. *)
  21. VAR c: CARDINAL;
  22. BEGIN
  23.  
  24.    c := 0;
  25.    BuscarCamino(InicioLista(l), l, a, c);
  26.    RETURN c;
  27.  
  28. END CantidadCaminos;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement