// liste.c
// << Algorithmique du texte >>
// Maxime Crochemore, Christophe Hancart et Thierry Lecroq
// Vuibert, 2001.
#include <stdio.h>
#include "chl.h"
#include "cellule.h"
#include "liste.h"
Liste listeVide() {
Liste liste;
liste = (Liste)malloc(sizeof(struct _liste));
if (liste == NULL)
error("listeVide");
liste->debut = liste->parcours = NULL;
return(liste);
}
Booleen estListeVide(Liste liste) {
return(liste->debut == NULL);
}
void lister(Liste liste) {
liste->parcours = liste->debut;
}
Booleen fin(Liste liste) {
return(liste->parcours == NULL);
}
void *suivant(Liste liste) {
// liste->parcours != NULL
void *resultat;
resultat = liste->parcours->element;
liste->parcours = liste->parcours->suivant;
return(resultat);
}
void inserer(Liste liste, void *element) {
Cellule cellule;
cellule = (Cellule)malloc(sizeof(struct _cellule));
if (cellule == NULL)
error("inserer");
cellule->element = element;
cellule->suivant = liste->debut;
liste->debut = cellule;
}