A voir également:
- Parcours en largeur arbre binaire en c
- Langage ascii - Guide
- Langage binaire - Guide
- Pascal langage - Télécharger - Édition & Programmation
- Langage pascal - Télécharger - Édition & Programmation
- Dev-Pascal - Télécharger - Édition & Programmation
2 réponses
Utilisateur anonyme
27 févr. 2009 à 21:32
27 févr. 2009 à 21:32
ta fonction retourne un int comme elle le doit, alors pense du cas ou l'arbre vaut NULL , elle ne retourne rien ? ça te retounera un warning pas très grave mais c'est mieux de le mettre.
voici l'algorithme général d'une fonction récursive :
type_retour fonction(type_param param) {
if( condition d'arrêt ){
traitement1 ;
}else if (condition ) {
traitement2 ;
}else{
traitement3 ;
}
}
if (!racine) return 0;
je te propose ce code, j'ai pas compilé mais je pense qu'il ca marche :
voici l'algorithme général d'une fonction récursive :
type_retour fonction(type_param param) {
if( condition d'arrêt ){
traitement1 ;
}else if (condition ) {
traitement2 ;
}else{
traitement3 ;
}
}
if (!racine) return 0;
je te propose ce code, j'ai pas compilé mais je pense qu'il ca marche :
int Taille_arbre(Noeud *racine){ //pas besoin de mettre compteur en paramètre, if(!racine) return 0; else{ //ici le noeud existe donc ca compte pour un 1 return (1+Taille_arbre(racine->gauche)+Taille_arbre(racine->droite) ); } }
Merci. Je ne connaissais pas la structure type pour une fonction recursive. La ligne qui suit le else est également trés intéressante je n'y avais pas pensé.
Si la racine était NULL dans mon ancien programme, la fonction aurait simplement retourné le compteur que l'on aurait passé en paramètre. Mais je trouve ta solution beaucoup plus intéressante.
Merci pour ton aide, je pense que je vais pouvoir continuer mon programme.
Si la racine était NULL dans mon ancien programme, la fonction aurait simplement retourné le compteur que l'on aurait passé en paramètre. Mais je trouve ta solution beaucoup plus intéressante.
Merci pour ton aide, je pense que je vais pouvoir continuer mon programme.