(**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