Donat un arbre binari de cerca (BST) d’enters i un valor, implementa una funció que retorni un nou BST amb el valor inserit a la posició correcta. Si el valor ja existeix a l’arbre, la funció ha de retornar el mateix arbre sense canvis.
/**
* @brief Insereix un valor en un BST.
*
* @param t Un arbre binari de cerca.
* @param x Valor a inserir.
* @returns Un nou BST amb `x` inserit a la posició correcta.
* Si `x` ja és a `t`, retorna `t` sense canvis.
*/
BinTree<int> bst_inserta(BinTree<int> t, int x);
Recordeu que BinTree<int> és immutable: no es pot
modificar un arbre existent, sinó que cal construir-ne un de nou.
L’entrada consisteix en una seqüència de casos. Cada cas conté un arbre binari de cerca en format visual i, a continuació, una seqüència d’enters a inserir.
Per a cada cas, la sortida mostra l’arbre resultant d’inserir tots els valors a l’arbre inicial, en format visual.
Els fitxers públics (icona del gatet) són: la classe
BinTree (fitxer bintree.hh), l’entrada/sortida
de BinTree (bintree-io.hh) i el programa
principal. També hi ha un Makefile i el directori
.vscode que té la configuració per compilar i debuggar amb
VSCode.
Has d’implementar bst_inserta en un fitxer
.cc nou, compilar (està preparat per poder
compilar i debuggar amb VSCode), i finalment enviar només el
fitxer amb la funció.
Autoria: Pau Fernández
Generació: 2026-03-12T16:22:21.130Z
© Jutge.org, 2006–2026.
https://jutge.org