type 'a avl = Empty Node of int * 'a avl * 'a * 'a avl let rec fold_bfs f acc ar = match ar with Empty -> acc Node (alt,Empty,a,Empty) -> f acc a Node (alt,Node (alte,ee,b,de),a, Node(altd,ed,c,dd)) -> let resa = f acc a in let resb = f resa b in let resc = f resb c in let resee= fold_bfs f resc ee in let resde= fold_bfs f resee de in let resed= fold_bfs f resde ed in fold_bfs f resed dd Node (alt,Empty,a, Node(altd,ed,b,dd)) -> let resa = f acc a in let resb = f resa b in let resed= fold_bfs f resb ed in fold_bfs f resed dd Node (alt,Node (alte,ee,b,de),a, Empty) -> let resa = f acc a in let resb = f resa b in let resee= fold_bfs f resb ee in fold_bfs f resee de
This document was generated using caml2html