Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- static node_arbre* i_sub_arrel(node_arbre *n, const T& x, int& altura){
- node_arbre *m = NULL;
- if (n != NULL){
- if (n->info == x){
- m = copia_node_arbre(n);
- } else {
- int alt1, alt2;
- alt1 = alt2 = altura+1;
- m = i_sub_arrel(n->segE,x,alt1);
- node_arbre *aux = NULL;
- aux = i_sub_arrel(n->segD,x,alt2);
- if (m == NULL){ // No hi ha cap aparicio al fill esquerra
- m = aux;
- altura += alt2;
- } else if (aux != NULL){ // m != NULL comparem les altures per determinar
- if (alt1 > alt2){
- m = aux;
- altura += alt2;
- }
- } else altura += alt1; // No hi ha aparicions al fill dret
- }
- }
- return m;
- }
- void sub_arrel(Arbre& asub, const T& x)
- /* Pre: p.i. = A, asub es buit */
- /* Post: si A conte x, asub es el subarbre d'A resultat de la cerca;
- si A no conte x, asub es buit */
- {
- int altura = 0;
- asub.primer_node = i_sub_arrel(primer_node, x, altura);
- }
Advertisement
Add Comment
Please, Sign In to add comment