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 : Structure de données Arbre de Huffman [ Archives / Au secours ] (nicloss)

samedi 26 novembre 2005 à 15:33:03 | Structure de données Arbre de Huffman

nicloss

Bonjour, j'ai un projet en programmation c qui consiste à coder un programme qui compresse selon l'algorithme de Huffman.
J'ai bien compris le principe mais je n'ai pas beaucoup d'expérience en prog c et le prof nous oblige à utiliser une structure qu'il nous a donné pour l'arbre.
Et le problème est que je ne comprend pas cette structure et donc je ne sais pas comment l'utiliser.
Si quelqu'un pouvait m'expliquer cette structure, cela m'aiderai beaucoup...
Merci d'avance,

typedef unsigned char uchar;
/* Attention : ulong déjà défini dans "/usr/include/sys/types.h" */
typedef unsigned long ulong;
struct huffman {
  enum { EXTERNE, INTERNE} type; /* Donnée dans champ u */
  union {
    struct {
      struct huffman *fg; /* Code 0 */
      struct huffman *fd; /* Code 1 */
    } interne; /* Un noeud interne */
    uchar feuille; /* La valeur de l'octet */
  } u;
  ulong proba; /* Le nombre d'occurence (cumulé pour un noeud interne) */
};
typedef struct huffman *huffman;


samedi 26 novembre 2005 à 16:07:02 | Re : Structure de données Arbre de Huffman

vecchio56

Administrateur CodeS-SourceS
La structure, c'est un arbre. Un arbre, c'est soit une feuille, soit une noued, avec sous sous arbre gauche et un sous arbre droit. Union exprime ce choix entre feuille et noeud, c'est un peu moche c'est vrai

samedi 26 novembre 2005 à 16:14:31 | Re : Structure de données Arbre de Huffman

nicloss


Merci beaucoup de ta réponse.

Donc avec cette structure je peux coder Huffman ?
Tu pourrais m'expliquer comment utiliser feuille et noeud pour la suite de mon programme?
Car si je n'arrive pas à accéder à ces champs, je suis mal barré !!!
La structure est un peu complexe et je ne vois pas trop comment accéder aux différents champs.
J'ai vu pas mal de sources sur l'algo d'Huffman et aucun n'utilise de structure similaire.


samedi 26 novembre 2005 à 16:34:53 | Re : Structure de données Arbre de Huffman

vecchio56

Administrateur CodeS-SourceS
Pour ce type de structures, le langage C n'est pas terrible. Le langages à objets sont bien plus adaptés. Pour utiliser ta structure, tu aura des codes du genre: struct huffman* h; // que tu obtiens de je ne sais pas où pour savoir si c'est une feuille, tu as h->type if(h->type == EXTERNE) { h->feuille contient la valeur de la feuille } else { h->interne.fg et h->interne.fd désignent les sou-arbres } Bonne chance

samedi 26 novembre 2005 à 16:43:37 | Re : Structure de données Arbre de Huffman

nicloss


Merci beaucoup !!!
Je pense que je vais pouvoir avancer...
Et si je bloque encore pour l'utilisation de la structure, je reviendrais faire un tour...


samedi 26 novembre 2005 à 19:22:30 | Re : Structure de données Arbre de Huffman

nicloss


Bon j'ai encore des petits problèmes pour utiliser la structure...
Le programme me met des "Segmentation Fault" lorsque que je veux affecter des valeurs à mes champs.
Je m'y prend surement mal !!!
Par exemple, pour affecter 10 au champ "proba", je fais ça :

h->proba = 10;

Et ça ne marche pas.
Tu peux m'aider ?

je crois que je n'ai pas encore parfaitement compris comment utiliser ces put*** de champs !!!



samedi 26 novembre 2005 à 20:29:24 | Re : Structure de données Arbre de Huffman

vecchio56

Administrateur CodeS-SourceS
Bien sur, dans l'exemple que je t'ai donné, h n'est pas initialisé. Du as sans doute un algo a suivre ou quelque chose, non? Si ce n'est pas le cas, bon courage car l'algo n'est pas particulièrement simple a coder. Tu as un exemple dans mes sources si tu veux



Cette discussion est classé dans : arbre, interne, structure, struct, huffman


Répondre à ce message

Sujets en rapport avec ce message

PILE & STRUCTURE [ par cyberice67 ] Bonjour, J'ai une bonne question spécial chauffage de neurones.... J'ai créé une structure de base appelée MesDonnees, qui contient mes données. Puis Structure alignment [ par Gargagol ] Voilà je programme sous MS VC++J'ai la structure suivante:typedef struct{ unsigned short port; unsigned char showMessage; unsigned char hashMonitor[16 compression de huffman urgent svp [ par bundy_boy ] Bonjour voila, j'essai d'implémenter la compression de huffman dans un archiveur (qui lui fonctionne très bien), j'ai testé deux algorithmes de huffma Codage de l'arbre de Huffman [ par janette ] Je programme actuellement la compression de fichiers par la méthode de Huffman et j'ai terriblement besoin d'aide pour le codage le l'arbre!! J'ai ess structure [ par logant83 ] bonjoir, enfaite voila j'aimerai pouvoir exploiter une structure mais voila j'i arrive pas. struct connect_nick { //ma structure char pseudo[1000 créer une liste à partir d'un arbre [ par morganistic ] bonjour a tous!voila deux structures : une liste et un arbre.je n arrive pas a parcourir un arbre en inserant chaque noeud de l arbre dans une liste.. Parcours arbre Huffman [ par lordvan ] Bonjour,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 q pointeur & structure [ par Kurpeus1 ] Bonjour, j'ai un petit problème de compréhension et j'espère que vous pourrez m'aider voici une structure :struct ligne{       int  nbRaw ;       char Définition de Structure [ par angelfire0808 ] Voila j'ai une petite question sur la definition des structure : struct liste         {         int valeur;     & Les arbres en C [ par nadias ] Bonsoir tout le monde,Je voudrai SVP etre corriger s'il y a erreur merci.On me demande de creer un arbre. Voici la consigne:"Cette arbre possède des n


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, 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
Temps d'éxécution de la page : 0,608 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.