Declare basic function for the chained list

This commit is contained in:
Mylloon 2021-12-18 13:51:28 +01:00
parent 336a47f4ee
commit e942492583
2 changed files with 78 additions and 0 deletions

37
liste.c Normal file
View 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
View 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