begin process at 2008 07 20 09:30:42
1 213 150 membres
71 nouveaux aujourd'hui
14 166 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : langage C : fonction calcul hauteur maximale arbre [ Archives / Au secours ] (lordvan)

langage C : fonction calcul hauteur maximale arbre le 06/04/2006 21:53:10

lordvan
Bonjour à tous,

je suis novice dans le programmation en C et j'ai besoin de votre aide car il me faut une fonction, qui calcule la hauteur maximale d'un arbre (un nb entier de branches). Sachant que cette hauteur max peut se trouver n'importe ou ! J'ai essayé de faire de cette façon :
void hauteur(pnoeud arbre, int max, int *compteur){
int*l=0;
if(arbre != NULL){

hauteur(arbre->fg,max,&(compteur+l);
l=compteur;
if(l>max)
max=l;
hauteur(arbre->fd,max,&(compteur-1));

}
}
mais je suis quasiment sur que ça ne va pas fonctionner !

Merci de m'aider à faire marcher cette fonction ++


Re : langage C : fonction calcul hauteur maximale arbre le 06/04/2006 22:34:02

Pamaury
Réponse acceptée !
int max_hauteur(pnoeud arbre)
{
   if(arbre==NULL)
      return 0;
   return max(max_hauteur(arbre->fg),max_hauteur(arbre->fd))+1;
}

A m a u r y

Re : langage C : fonction calcul hauteur maximale arbre le 06/04/2006 22:35:22

stenka
En effet, cette fonction ne semble pas très au point! Il serait surtout utile de préciser comment sont construites les classes (ou structures) pnoeud et arbre. Lorsque la f° hauteur se rappelle elle-même, tu lui passes un pnoeud qui est membre d'un arbre par l'intermédiaire d'un pointeur d'arbre (arbre->fg) : pourquoi?

Remarque : sauf erreur de ma part, -> est n'est pas un opérateur du c mais du cpp

stenka


Re : langage C : fonction calcul hauteur maximale arbre le 06/04/2006 23:25:11

BruNews
(Admin CS)
-> est l'adresseur de champ d'un pointeur de structure en C comme en C++.

ciao...
[ Lien ]
BruNews, MVP VC++

Re : langage C : fonction calcul hauteur maximale arbre le 07/04/2006 14:00:44

lordvan


Merci beaucoup Amaury, ta fonction répond tout à fait à mes attentes et en plus on ne peut pas faire plus simple ! J'ai honte d'avoir fait des erreurs, peut être que ça changera avec le temps.

Par ailleurs, je voulais savoir si vous saviez la façon de procéder pour incrémenter de 1 le nb de cases d'un tableau (initialement int tab[0]) ? Je crois qu'il faut utiliser les fonctions realloc ou calloc mais je ne sais pas m'en servir !
En fait, j'ai besoin de savoir ça pour faire une fonction qui parcours un arbre de huffman. Je parcours cet arbre de la racine au feuille. Je vais de droite à gauche, lorsque je vais à droite, je mets un 1, et quand je vais à gauche je mets un 0. Ainsi, quand j'arrive à une feuille, qui correspond à un caractère, je mets dans un tableau, le nouveau code de ce caractère.
Merci de vos lumières !

@bientot !


Classé sous : fonction, arbre, compteur, hauteur, max

Participer à cet échange

Pub



Appels d'offres

Dessins techniques
Budget : 60€
Animation Flash - Doma...
Budget : 370€
Application flash medi...
Budget : 1 000€

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Boutique

Boutique de goodies CodeS-SourceS