Clojure - Arbre binari Z92223


Statement
 

pdf   zip

thehtml

[r]


Aquest problema planteja el treball amb arbres binaris.

Penseu un tipus en clojure per guardar arbres binaris de nombres naturals.

Definiu, amb la funció def, t1 com l’arbre que mostra la figura.

Feu el mateix amb t2 i t3 tenin en compte que són els seu dos fills.



  1. Feu una funció size que, donat un arbre, retorni la seva talla, és a dir, el nombre de nodes que conté.
  2. Feu una funció height que, donat un arbre, retorni la seva alçada, assumint que els arbres buits tenen alçada zero.
  3. Feu una funció equal que, donat dos arbres, indiqui si són el mateix.
  4. Feu una funció pre-order que, donat un arbre, retorni el seu recorregut en pre-ordre.
  5. Feu una funció post-order que, donat un arbre, retorni el seu recorregut en post-ordre.
  6. Feu una funció in-order que, donat un arbre, retorni el seu recorregut en in-ordre.
  7. Feu una funció breadth-first que, donat un arbre, retorni el seu recorregut per nivells.
  8. Feu una funció build que, donat el recorregut en pre-ordre d’un arbre i el recorregut en in-ordre del mateix arbre, retorni l’arbre original. Assumiu que l’arbre no té elements repetits.

Puntuació

Cada apartat puntua 12,5 punts.

Public test cases
  • Input

    (size t1)
    (height t1)
    (equal t2 t3)
    (pre-order t1)
    (post-order t1)
    (in-order t1)
    (breadth-first t1)
    (post-order (build (pre-order t1) (in-order t1)))
    
    
    

    Output

    7
    3
    false
    (1 2 4 5 3 6 7)
    (4 5 2 6 7 3 1)
    (4 2 5 1 6 3 7)
    (1 2 3 4 5 6 7)
    (4 5 2 6 7 3 1)
    
    
    
  • Information
    Author
    Jordi Petit / Gerard Escudero
    Language
    Catalan
    Official solutions
    Clojure
    User solutions
    Clojure