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