begin process at 2012 02 11 23:25:57
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Construire tableau code binaire des caractères avec l'arbre de Huffman


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Construire tableau code binaire des caractères avec l'arbre de Huffman

lundi 17 avril 2006 à 13:39:32 | Construire tableau code binaire des caractères avec l'arbre de Huffman

lordvan

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




Cette discussion est classée dans : fonction, arbre, code, int, entier


Répondre à ce message

Sujets en rapport avec ce message

fonction apply / template [ par pointejb ] Bonjour à tous,Je cherche un moyen d'implémenter une fonction de type 'apply' qui prendrait en parametres une fonction et ses arguments et qui aurait entier->string [ par blueburry ] Bonjour, je suis en train de creer une fonction qui permet de verifier si la commande tapee sur telnet est bonne ou pas.Si elle est juste, un code de tableau d'entier. [ par gdpasmini ] Hello !j'ai un petit soucis avec une fonction qui renvoi un tableau en parametre... voila les details :Dans mes fonctions : int * boutonDecodFlux(void Algo utile ou complètement "bidon"?? [ par ninjagtr ] Bonjour,Je suis tombé sur un bout de code et je ne sais pas s'il a une utilité (autre que de me faire chercher lol).Voici le code : int Devinez(int x) Modification d'une fonction [ par amouna22528013 ] Salut, Je veux modifier une fonction de lecture d'un fichier des données en entrée. La fonction ne peut lire que des données codées en numéros [quote] Convert char** en int sous c [ par clavz40 ] Bonjour a tous, Je développe une petite application en c pour appareil de lecture de code barre dont je récupère les infos. J'avais besoin d'une fon fonction avec un type file* [ par vercd7am ] Bonjour, j'ai ecrit quelques lignes de code pour pouvoir lire un fichier txt. [code=cpp]int main() { int c; FILE *fichier = NULL; fichi structure en c [ par vercd7am ] Bonjour, j'aurais voulu m'enleve un doute sur les structures en c. Disons que je definis une structure [code=cpp]struct bidule { int bibi; char bobo Besoin d'aides pour un petit code en c++ [ par wannabesuper ] Bonjour à tous, alors voilà j'essaye avec mes faibles connaissances en c++ de réaliser un petit programme sur le jeux des cochons dont vous pouvez tr la fonction atan() [ par petitlapino ] Salut tout le monde, j'ai un problème dans mon programme en Visual Studio 2008, je veux appliquer la fonction atan (l'arc tangente ) pour un tableau m


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,466 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales