Declare basic function for the chained list
This commit is contained in:
parent
336a47f4ee
commit
e942492583
2 changed files with 78 additions and 0 deletions
37
liste.c
Normal file
37
liste.c
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
#include "liste.h"
|
||||||
|
|
||||||
|
void ajouter(Liste *liste, char lettre) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
Cellule *allouerCellule(char lettre) {
|
||||||
|
Cellule *nouvelleCellule;
|
||||||
|
if ((nouvelleCellule = (Cellule*)malloc(sizeof(Cellule))) == NULL) {
|
||||||
|
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) {
|
||||||
|
|
||||||
|
}
|
41
liste.h
Normal file
41
liste.h
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
#ifndef _LISTE_HUFFMAN_H_
|
||||||
|
#define _LISTE_HUFFMAN_H_ 1
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
// Définition d'une Celulle/Noeud
|
||||||
|
typedef struct cel {
|
||||||
|
char lettre; // lettre
|
||||||
|
int frequence; // fréquence dans laquelle la lettre apparaît dans le texte
|
||||||
|
struct cel *gauche; // utile en tant que noeud
|
||||||
|
struct cel *droite; // utile en tant que noeud
|
||||||
|
struct cel *suivant; // utile en tant que cellule
|
||||||
|
} Cellule;
|
||||||
|
|
||||||
|
// Définition d'une Liste chainée
|
||||||
|
typedef Cellule *Liste;
|
||||||
|
|
||||||
|
/*
|
||||||
|
Ajoute une lettre (qui sera automatiquement transformé
|
||||||
|
en cellule si elle n'existe pas déjà) dans la liste, avec
|
||||||
|
sa bonne occurence (la met à jour si la lettre existait déjà)
|
||||||
|
*/
|
||||||
|
void ajouter(Liste *liste, char lettre);
|
||||||
|
|
||||||
|
// Alloue une cellule pour la liste
|
||||||
|
Cellule *allouerCellule(char lettre);
|
||||||
|
|
||||||
|
// Affiche la liste
|
||||||
|
void afficherListe(Liste liste, FILE *fichier);
|
||||||
|
|
||||||
|
// Vide la liste
|
||||||
|
void viderListe(Liste liste);
|
||||||
|
|
||||||
|
// Trie la liste en fonction des occurences
|
||||||
|
void trierListe(Liste *liste);
|
||||||
|
|
||||||
|
// Ajoute une cellule en tête de liste
|
||||||
|
void ajouterEnTete(Liste *liste, Cellule *cellule);
|
||||||
|
|
||||||
|
#endif
|
Reference in a new issue