Feu un programa que llegeixi la descripció d’un arbre binari de naturals i escrigui els seus recorreguts en postordre i inordre.
Tant en aquest exercici com en la resta d’exercicis d’aquesta secció, si no es diu el contrari la descripció d’un arbre consisteix en el nombre de nodes n seguit del recorregut en preordre, el qual inclou les fulles marcades amb un -1. Aquest recorregut té doncs 2n + 1 elements.
(Per veure un exemple amb l’arbre corresponent a l’exemple d’entrada-sortida, consulteu la versió pdf o ps d’aquest enunciat.)
Per resoldre tant aquest exercici com la majoria d’aquesta secció, us caldrà emmagatzemar l’arbre en un vector. Feu-ho usant aquest codi (lleugerament modificat si cal):
Amb l’arbre de l’exemple, el contingut final del vector v seria
posició | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
v.valor | 3 | 0 | 7 | 4 | 2 | 5 | 4 | 7 | 6 | 1 |
v.esq | 1 | 2 | -1 | -1 | -1 | 6 | -1 | 8 | -1 | -1 |
v.dre | 5 | 4 | 3 | -1 | -1 | 7 | -1 | -1 | 9 | -1 |
Fixeu-vos que cada posició del vector guarda el valor d’un node, així com la posició del seu fill esquerre i del seu fill dret. El valor -1 s’usa per indicar els arbres buits. La variable a del programa principal és la posició de l’arrel de l’arbre, i val -1 si l’arbre és buit, i 0 si no ho és.
Entrada
L’entrada consisteix en la descripció d’un arbre binari de naturals.
Sortida
Escriviu dues línies, amb els recorreguts en postordre i inordre de l’arbre. Cada element ha de sortir precedit d’un espai.
Input
10 3 0 7 -1 4 -1 -1 2 -1 -1 5 4 -1 -1 7 6 -1 1 -1 -1 -1
Output
4 7 2 0 4 1 6 7 5 3 7 4 0 2 3 4 5 6 1 7