This repository has been archived on 2022-03-31. You can view files and clone it, but cannot push or open issues or pull requests.
Huffman/liste.c

48 lines
1.4 KiB
C
Raw Normal View History

#include "liste.h"
2021-12-19 12:55:24 +01:00
void ajouterLettre(Liste *liste, char lettre) {
Cellule *curseur = *liste;
if (curseur == NULL) { // si liste vide, on créer juste une nouvelle cellule
*liste = allouerCellule(lettre);
} else {
while (curseur->suivant != NULL && curseur->lettre != lettre) // tant qu'on est pas à la fin de la liste ou qu'on n'a pas atteint la lettre
curseur = curseur->suivant; // on avance dans la liste
if(curseur) // si élément pas dans la liste (on a atteint la fin de la liste et on est pas sur la lettre)
curseur->suivant = allouerCellule(lettre); // on rajoute la lettre
else // sinon c'est que on a trouvé la lettre
curseur->frequence++; // on incrémente de 1 la fréquence de la lettre
}
}
Cellule *allouerCellule(char lettre) {
Cellule *nouvelleCellule;
if ((nouvelleCellule = (Cellule*)malloc(sizeof(Cellule))) == NULL) {
2021-12-18 13:52:33 +01:00
printf("Impossible d'allouer de la mémoire supplémentaire.\n");
exit(1);
}
nouvelleCellule->lettre = lettre;
nouvelleCellule->frequence = 1; // fréquence par défaut
nouvelleCellule->gauche = NULL;
nouvelleCellule->droite = NULL;
nouvelleCellule->suivant = NULL;
return nouvelleCellule;
}
void afficherListe(Liste liste, FILE *fichier) {
}
void viderListe(Liste liste) {
}
void trierListe(Liste *liste) {
}
void ajouterEnTete(Liste *liste, Cellule *cellule) {
}