miércoles, 27 de noviembre de 2013

Calcular la anchura de un arbol binario en Ocaml

(**anchura binaria*)

type 'a bintree = Empty
     |Node of (  'a * 'a bintree * 'a bintree);;

let anchura lista =
   let rec recorrido acum = function
      [] -> List.rev acum
      |Empty::t -> recorrido acum t
      |Node (x, Empty, Empty)::t -> recorrido (x::acum) t
      |Node (x, r, Empty)::t
      |Node (x, Empty, r)::t -> recorrido (x::acum) (List.append t [r])
      |Node (x, r, e)::t -> recorrido (x::acum) (List.append t [r; e])
   in recorrido [] [lista];;

No hay comentarios:

Publicar un comentario