// liste.cpp // 17 11 98 #include "liste.h" #include #include Element::Element () { suivant = NULL; contenu = NULL; } Element::~Element() { } Liste::Liste() { debut = NULL; courant = NULL; longueur = 0; } Liste::~Liste() { courant = debut; while (courant!=NULL) { Element * suiv = courant->suivant; delete courant; courant = suiv; } } void Liste::ajouter(Objet * machin) { Element * nouveau = new Element(); nouveau->suivant = debut; nouveau->contenu = machin; debut = nouveau; courant = nouveau; longueur++; } int Liste::enlever(Objet* machin) { Element* avant = NULL; Element* pendant = debut; if (pendant==NULL) return -1; while (pendant->contenu!=machin) { avant = pendant; pendant = pendant->suivant; if (pendant==NULL) return -1; } if (avant==NULL) debut = pendant->suivant; else avant->suivant = pendant->suivant; delete pendant; longueur--; return 0; } Objet* Liste::premier() { courant = debut; if (debut==NULL) return NULL; return debut->contenu; } Objet* Liste::prochain() { if (courant==NULL) return NULL; courant = courant->suivant; if (courant==NULL) return NULL; return courant->contenu; } void Liste::imprimer() { Element * cour = debut; while (cour!=NULL) { cour->contenu->imprimer(); cour = cour->suivant; } } void Liste::toIdent(char * s) { Element * cour = debut; while (cour!=NULL) { char ss[64]; strcpy(ss, ""); cour->contenu->toIdent(ss); strcat(s, ss); strcat(s, " "); cour = cour->suivant; } } void Liste::toString(char * s) { Element * cour = debut; while (cour!=NULL) { char ss[64]; cour->contenu->toString(ss); strcat(s, ss); strcat(s, "\n"); cour = cour->suivant; } } void Liste::sauver(ofstream * fos) { Element * cour = new Element(); cour = debut; while (cour!=NULL) { cour->contenu->sauver(fos); cour = cour->suivant; } }