Flux rss
Rechercher : dans
Par :

Parcourir arbre de huffman

Lord Van, le lundi 17 avril 2006 à 17:02:47 
 Signaler ce message aux modérateurs

Bonjour à tous,
voilà, je suis en train d'essayer de faire une fonction de parcours d'arbre de huffman. Cette fonction a pour rôle de construire le code de chaque caractère. Sachant que l'arbre a déja été construit préalablement, cette fonction parcourt l'arbre de sa racine jusqu'aux feuilles (qui sont les caractères), quand elle va vers la gauche de l'arbre, elle mets un 1 dans un tableau d'entiers, ou un 0 si elle va à droite. Ce tableau s'incrémente d'une case à l'aide d'un realloc à chaque fois que l'arbre "descend d'un étage". Donc, au final, la fonction de parcours d'arbre, ressort un tab de code de 2 lignes et de 256 colonnes, càd que chaque caractère a un entier qui lui est associé. Cet entier a la particularité d'être composé que de 0 ou de 1. Une fonction externe s'occupera d'écrire cet entier en codage binaire dans un fichier.
Ma fonction arbre utilise une fonction annexe qui a pr but de construire l'entier code. On a besoin de cette fonction car sans elle, code est un tableau donc chaque case a un entier. Mais ce que l'on veut, c'est que chaque entier des cases constitue un seul et unique entier. J'utilise alors un pile de nombre pr reconstituer ce nombre.

Donc j'ai besoin de votre aide pour corriger cette fonction de parcours d'arbre car ça fait 6heures que je suis dessus et je ne trouve pas la solution. Voici mes fonctions :

int Construction_code(int *code, int nb_entier){
int i,k;
pel p=NULL;
int val;
int coef=1;
int res=0;

for(i=0;i<nb_entier;i++){
p=empiler(p,code[i]);
}
while(p!=NULL){
p=depiler(p,&val);
res=res+val*coef;
coef=coef*10;
}
printf("l'entier du code est %i \n", res);
return res;
}



void parcours_arbre (pnoeud arbre, int tab_code[256], int *code,int nb_entier){
int i;
int h=0;
if((arbre->fg=NULL)&&(arbre->fd=NULL)){
tab_code[arbre->c]=Construction_code(code,nb_entier);
nb_entier=0;
}
else
if(arbre->fg){
nb_entier++;
code[nb_entier]=0;
parcours_arbre (arbre->fg, tab_code,realloc(code,sizeof(int)),nb_entier);}
else{
if(arbre->fd){
code[nb_entier]=1;
parcours_arbre (arbre->fd,tab_code,realloc(code,sizeof(int)),nb_entier);
}
}
}


UN grand merci d'avance

1

 hakimlion, le samedi 12 avril 2008 à 16:52:38

Je bosion procedur codage et decodage de arbre huffman et calculer la propabiliter de chaque caracter et afficher l' arbre
toute en programme pascal
merci

Répondre à hakimlion
C++ parcours iteratif arbres binaires C++ parcours arbres binaires Voila g fais les aprcours recursifs il me reste les parcours iteraifs j'arrive pas à realiser avec les piles et les boucles tantque ! Si possible prennez ce code executable et ajoutez une procedure de parcour iteratif... www.commentcamarche.net/forum/affich-6250479-c-parcours-iteratif-arbres-binaires
Codage de Huffman Le codage de Huffman David Huffman a proposé en 1952 une méthode statistique qui permet d'attribuer un mot de code binaire aux différents symboles à compresser (pixels ou caractères par exemple). La longueur de chaque mot de code n'est pas... www.commentcamarche.net/contents/video/huffman.php3
Aide en Ocaml Arbre de Huffman salut tout le monde, je suis un debutant en Ocaml. je voudrais creer une fonction qui prend en entrée un arbre de huffman et un message sous forme de liste de bits et qui rend le message codé sous forme de chaine de caractère. type arbreHuffman =... www.commentcamarche.net/forum/affich-11014249-aide-en-ocaml-arbre-de-huffman
Google Maps - Calculer un ItinéraireTrouver des adresses, c’est déjà très pratique. Cependant, Maps peut faire bien mieux en vous permettant de calculer un itinéraire entre un point de départ et un point d’arrivée. Il existe trois méthodes pour déterminer un parcours : Cliquez sur... www.commentcamarche.net/faq/sujet-15078-google-maps-calculer-un-itineraire
Algo d parcours d'un arbre binaireje souhait avoir l'algorithme du parcours d'un arbre binaire... je le cherche depuit lontemps ...j'ai toujours pas de répense... www.commentcamarche.net/forum/affich-11030-algo-d-parcours-d-un-arbre-binaire
Arbres binaires meilleur parcoursBonjour, G un projet concernant les arbres binaires, pour l'implémentation chainée et les parcours préfixe infixe et postfixe g pas de problème, mais j'arrive pas a calculer le temps d'exécution de chaque parcours et sous les 2 formes itératif et... www.commentcamarche.net/forum/affich-12464397-arbres-binaires-meilleur-parcours
(ACCESS) parcours d'arbre recursif ??????Bonjour, J'ai un problème sur ACCESS et l'on m'a suggérer de faire un "parcours d'arbre récursif" pour y remédier... mais je ne sais pas ce que c'est ! Pourriez-vous me dire si c'est bien ça que je dois utiliser, si oui : comment ?! si non : que dois... www.commentcamarche.net/forum/affich-2694178-access-parcours-d-arbre-recursif