Les arbres binaires : la suppression
berlingo-48
Messages postés
45
Statut
Membre
-
regis -
regis -
Bonsoir,
je viens d'écrire un programme qui supprime un noeud dans un arbre ! simple je ne sais pas comment l'écrire en utilisant des fonctions récursive ! pouvez vous m'aider svp ?
v o i d s u p p r ime _ n o e u d ( A B R ** p e r e , i n t x ) {
wh i l e ( * p e r e ) {
i f ( (* per e)-->va leur==x ) {
ABR * n o e u d x=*p e r e ;
i f ( noeud x-->ga uche==NUL L ) * per e = n oeud x-->droi te ;
e l s e i f ( n o e u d x-->d r o i t e==NUL L ) * p e r e = n o e u d x-->g a u c h e ;
e l s e {
A B R * n o e u d _ d r o i t ;
A B R ** p e r e _ n o e u d _ d r o i t=&n o e u d x-->d r o i t e ;
wh i l e ( ( * p e r e _ n o e u d _ d r o i t )-->g a u c h e )
p e r e _ n o e u d _ d r o i t=&( *p e r e _ n o e u d _ d r o i t )-->g a u c h e ;
n o e u d _ d r o i t = * p e r e _ n o e u d _ d r o i t ;
*p e r e _ n o e u d _ d r o i t= n o e u d _ d r o i t--> d r o i t e ;
noeud_droit-->gauche=noeudx-->gauche ;
n o e ud_ dr o i t-->dr o i te=n oe u dx-->d r oi t e ;
*p e r e=n o e u d _ d r o i t ;
};
free ( noeudx ) ;
r e t u r n ;
e l s e i f ( ( * p e r e )-->v a l e u r<x ) p e r e=&( } ( *p e r e )-->g a u c h e ) ;
e l s e p e r e=&( ( *p e r e )-->d r o i t e ) ;
}
}
je viens d'écrire un programme qui supprime un noeud dans un arbre ! simple je ne sais pas comment l'écrire en utilisant des fonctions récursive ! pouvez vous m'aider svp ?
v o i d s u p p r ime _ n o e u d ( A B R ** p e r e , i n t x ) {
wh i l e ( * p e r e ) {
i f ( (* per e)-->va leur==x ) {
ABR * n o e u d x=*p e r e ;
i f ( noeud x-->ga uche==NUL L ) * per e = n oeud x-->droi te ;
e l s e i f ( n o e u d x-->d r o i t e==NUL L ) * p e r e = n o e u d x-->g a u c h e ;
e l s e {
A B R * n o e u d _ d r o i t ;
A B R ** p e r e _ n o e u d _ d r o i t=&n o e u d x-->d r o i t e ;
wh i l e ( ( * p e r e _ n o e u d _ d r o i t )-->g a u c h e )
p e r e _ n o e u d _ d r o i t=&( *p e r e _ n o e u d _ d r o i t )-->g a u c h e ;
n o e u d _ d r o i t = * p e r e _ n o e u d _ d r o i t ;
*p e r e _ n o e u d _ d r o i t= n o e u d _ d r o i t--> d r o i t e ;
noeud_droit-->gauche=noeudx-->gauche ;
n o e ud_ dr o i t-->dr o i te=n oe u dx-->d r oi t e ;
*p e r e=n o e u d _ d r o i t ;
};
free ( noeudx ) ;
r e t u r n ;
e l s e i f ( ( * p e r e )-->v a l e u r<x ) p e r e=&( } ( *p e r e )-->g a u c h e ) ;
e l s e p e r e=&( ( *p e r e )-->d r o i t e ) ;
}
}
A voir également:
- Les arbres binaires : la suppression
- Codes binaires - Guide
- [Pokemon] comment couper les arbres - Forum Jeux vidéo
- Calculs binaires - Forum Matériel & Système
- Arbres genealogique gratuit ✓ - Forum Loisirs / Divertissements
- Les données de chaîne ou binaires seront tronquées. - Forum Excel
3 réponses
"je viens d'écrire un programme qui supprime un noeud dans un arbre"
1) ça saute aux yeux que c'est un copier-coller depuis un PDF
2) recherche rapide sur Google, et ô surprise, c'est la correction du TP7-Exercice 9
Petit rappel : Demander de l'aide pour vos exercices sur CCM
1) ça saute aux yeux que c'est un copier-coller depuis un PDF
2) recherche rapide sur Google, et ô surprise, c'est la correction du TP7-Exercice 9
Petit rappel : Demander de l'aide pour vos exercices sur CCM