Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- PROCEDURE BuscarCamino(pos: Posicion; l: Lista; a: Binario; VAR c: CARDINAL);
- BEGIN
- IF a # NIL AND EsPosicionLista(pos)
- IF NumeroInfo(InfoLista(pos, l)) = NumeroInfo(a^.info)) THEN
- IF EsHoja(a) AND EsFinalLista(pos, l) THEN
- c := c + 1;
- ELSE
- BuscarCamino(Siguiente(pos, l), l, a^.derecho, c);
- BuscarCamino(Siguiente(pos, l), l, a^.izquierdo, c);
- END;
- END;
- END;
- END BuscarCamino;
- PROCEDURE CantidadCaminos (l: Lista; a: Binario): CARDINAL;
- (* Devuelve la cantidad de caminos de 'a', desde la raiz hasta una hoja, que
- tienen emparejamiento numerico con 'l'.
- Decimos que hay una emparejamiento numerico entre un camino en un arbol y
- una lista si, al recorrer ambos y en cada paso, el dato numerico del
- elemento del camino es igual al dato numerico del elemento de la lista. *)
- VAR c: CARDINAL;
- BEGIN
- c := 0;
- BuscarCamino(InicioLista(l), l, a, c);
- RETURN c;
- END CantidadCaminos;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement