Flux rss
Collection CommentCaMarche.net
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

Parcourir arbre de huffman

Lord Van, le lundi 17 avril 2006 à 17:02:47
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
Répondre à Lord Van  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 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

Résultats pour Parcourir arbre de huffman

Probleme de segmentation sur arbre binaire. (Résolu) typedef struct noeud { int x; struct noeud *gauche; struct noeud *droite; } noeud; noeud *inserer(noeud *n,int x) { noeud * feuille; if (n==NULL) { feuille->x=x; feuille->gauche=NULL; feuille->droite=NULL; } else { if (x>n->x) { feuille=... www.commentcamarche.net/forum/affich-1845364-probleme-de-segmentation-sur-arbre-binaire
ARBRES BINAIRES (Résolu) Bonjour, Voilà j'aimerai savoir sur un arbre binaire, ce que c'est qu'un parcours infixes, suffixes et préfixes S.V.P c'est trés urgent !! Merci d'avance www.commentcamarche.net/forum/affich-4638555-arbres-binaires
[C/Algo]Créer un arbre récursivement (Résolu) Salut, j'aurais besoin d'aide pour écrire l'algo pour la création de l'arbre, ainsi que pour le parcours de l'arbre. Merci Exercice 1 Création du quad-tree 1. Charger les fichiers d’entrée. L’image décrivant l’altitude est... www.commentcamarche.net/forum/affich-2472471-c-algo-creer-un-arbre-recursivement

Résultats pour Parcourir arbre de huffman

[PHP] Lister le contenu d'un répertoireGrâce à PHP, il est possible d'afficher le contenu d'un répertoire et de ses sous-répertoires. Voici ci-dessous une fonction permettant de parcourir récursivement les répertoires et sous-répertoires et d'en afficher les fichiers : function... www.commentcamarche.net/faq/sujet-6773-php-lister-le-contenu-d-un-repertoire
[Windows NT] Activer facilement l'Ultra DMA des lecteurs IDELa prise en charge DMA des lecteurs de type IDE est beaucoup moins aisée sous NT4 que sous ses contemporains de la branche Windows 9x. En effet, ceux qui connaissent ce système savent qu'il n'existe pas de gestionnaire de périphériques en arbre, comme... www.commentcamarche.net/faq/sujet-1278-windows-nt-activer-facilement-l-ultra-dma-des-lecteurs-ide
[Windows NT] NT 4.0 SP2+ : Activation du DMALa prise en charge DMA des lecteurs de type IDE est beaucoup moins aisée sous NT4 que sous ses contemporains de la branche Windows 9x. En effet, ceux qui connaissent ce système savent qu'il n'existe pas de gestionnaire de périphériques en arbre, comme... www.commentcamarche.net/faq/sujet-1287-windows-nt-nt-4-0-sp2-activation-du-dma

Résultats pour Parcourir arbre de huffman

[PhP] Parcourir des dates (Résolu)Voila j'aimerais savoir si il existe un moyen simple pour parcourir les jours entre 2 dates données sous la format: AAAA-MM-JJ ce que j'aimerais c'est pouvoir gerer les samedis/dimanches et les mois de 30jours. Enfin juste savoir si ya... www.commentcamarche.net/forum/affich-3162878-php-parcourir-des-dates
Parcourir hashtabe en java (Résolu)Bonjour, je veux parcourir une hashtable afin d'avoir aficher tous les elements. j'ai essayé avec l'enumeration.Mais ça ne marche pas . car la resultats afiché n'est pas les elemenet de hashtable mais l'adresse memoire de ces... www.commentcamarche.net/forum/affich-8481649-parcourir-hashtabe-en-java
Java arbres (Résolu)bonjour je dois creer une calculatrice graphique en java en utilisant une classe arbre j'aimerai savoir s'il existe un algorithme pour construire l'arbre en tenant compte des operations prioritaires par ex si on a 2+3*4 comment faire... www.commentcamarche.net/forum/affich-1487586-java-arbres

Résultats pour Parcourir arbre de huffman

Télécharger GenoproGenolog est un logiciel de généalogie permettant de construire un arbre généalogique sur plusieurs générations. Il s'agit d'un des seuls logiciels capable d'afficher sur un même arbre la généalogie complète d'une personne (latéraux compris pour... www.commentcamarche.net/telecharger/telecharger-34055039-genopro
Télécharger X-Mas TreeX-Mas Tree est tout simplement un programme permettant de concevoir un arbre de Noël virtuel. Cette nouvelle version propose : des arbres plus colorés, l'utilisation d'images de haute qualité, de nouveaux luminaires en plus, l'ajout de pop... www.commentcamarche.net/telecharger/telecharger-34055730-x-mas-tree
Télécharger Ouidire Look Here Apprendre à vos enfants une nouvelle langue qui n'est pas sa langue maternelle, peut s'avérer tout un parcours. Ouidire Look Here est une application d'aide à l'apprentissage de l'anglais dès le jeune âge. Pour chaque nouvel utilisateur, il suffit... www.commentcamarche.net/telecharger/telecharger-34055749-ouidire-look-here

Résultats pour Parcourir arbre de huffman

Envoyer ses voeux virtuellement pour respecter l'environnement(Paris - Relax news) - Les Français envoient chaque année des milliers de cartes de voeux avant le passage à la nouvelle année. Ce sont autant de déchets à recycler et autant d'arbres abattus. Pour préserver l'environnement, il existe une solution :... www.commentcamarche.net/actualites/envoyer-ses-voeux-virtuellement-pour-respecter-l-environnement-4338012-actualite.php3

Résultats pour Parcourir arbre de huffman

Codage de HuffmanLe 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
UML - Modélisation des classes et objetsModélisation d'un objet La modélisation objet consiste à créer une représentation abstraite, sous forme d'objets, d'entités ayant une existence matérielle (arbre, personne, téléphone, ...) ou bien virtuelle (sécurité sociale, compte bancaire,... www.commentcamarche.net/contents/uml/umlclass.php3