Poda de subarbres d’un BinTree d’enters

Implementeu eficientment l’operació poda_subarbre especificada a continuació.

bool poda_subarbre(BinTree<int> &a, int x);

Entrada

L’entrada és un arbre binari d’enters a, sense repeticions, i un enter x.

Sortida

La sortida es un valor booleà que indica si x hi és l’arbre. En cas afirmatiu, s’han eliminat de l’arbre l’element x i tots els successors.

Exemple: considereu els arbres següents

 a =   1              b =   1             c =   5
      / \                  / \                 / \ 
     2   3                2   3               2   7
    / \                  /                       / \
   5   4                5                       6   8
      / \
     7   6

Si cridem poda_subarbre(a,4) el resultat és cert i a passa a tenir la forma de b. Si cridem poda_subarbre(c,3), el resultat és fals i l’arbre c no canvia.

Observació

Cal fer servir la classe BinTree que us donem

Només s’ha d’enviar un fitxer que contengui la funció amb la capçalera de l’enunciat i qualsevol altra funció auxiliar que cregueu convenient, sense la funció main. Afegiu-hi també l’include de la classe BinTree mitjançant

#include "BinTree.hh"

Informació del problema

Autoria: Borja Valles

Generació: 2026-01-25T16:38:05.822Z

© Jutge.org, 2006–2026.
https://jutge.org