Poda de subarbres d'un BinTree d'enters X50235


Statement
 

pdf   zip   tar

html

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"

Information
Author
Borja Valles
Language
Catalan
Official solutions
C++
User solutions
C++