2votos

Recorridos pre-in-post orden en Haskell

por josejuan hace 6 años

Esta mucho mejor (una traslación de la de C)

Dado los recorridos pre orden e in orden de un arbol obtener el recorrido post orden.

1
2
3
4
5
6
7
8
9
10
import Data.List 
 
post [] _ = [] 
post (x:xs) ys = post (take q xs) (take q ys) ++ post (drop q xs) (drop (q + 1) ys) ++ [x] 
    where (Just q) = elemIndex x ys 
 
 
 
--- 
test = post [2, 7, 3, 6, 5, 11, 8, 9, 4] [3, 7, 5, 6, 11, 2, 8, 9, 4] 

Comenta la solución

Tienes que identificarte para poder publicar tu comentario.