// 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; }