#include struct cellule { int contenu; cellule *suivant; }; struct file { cellule *premier; cellule *dernier; }; file* init () { file * ret = new file; ret->premier=NULL; ret->dernier=NULL; return ret; } int cardinal ( file *w) { int ret = 1; if (w->premier == NULL ) return 0; cellule * tmp = w->premier; while ( tmp->suivant != NULL) { tmp = tmp->suivant; ret ++; } return ret; } bool estvide(file *w){ return cardinal(w)==0; } void ajouter(file *w, int valeur){ cellule * tmp = new cellule; tmp->contenu = valeur; tmp->suivant = w->premier; w->premier = tmp; } int retire( file *w) { int value; cellule * ptr = w->premier; while ( ptr->suivant->suivant != NULL) { ptr = ptr->suivant; } value = ptr->suivant->contenu; delete ptr->suivant; ptr->suivant = NULL; w->dernier = ptr; return value; } void retirefile ( file * w) { while ( w->premier != NULL) { retire(w); } delete w; } void affichefile ( file * w ) { cellule * ptr = w->premier; std::cout << "\" "; while ( ptr != NULL) { std::cout<< ptr->contenu << " "; ptr= ptr->suivant; } std::cout << " \""<< std::endl; } int main () { file * ptrfile = init(); std::cout << " Taille de la file : " << cardinal(ptrfile)<< std::endl; return 0; }