From 9fe033ea88c2f705ec18c232873d056e0c229d72 Mon Sep 17 00:00:00 2001 From: Gaspard Coulet Date: Wed, 28 Apr 2021 23:05:53 +0200 Subject: Initial commit --- sem_2/HLIN202/TP/TP11-12/exo11.cpp | 74 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 sem_2/HLIN202/TP/TP11-12/exo11.cpp (limited to 'sem_2/HLIN202/TP/TP11-12/exo11.cpp') diff --git a/sem_2/HLIN202/TP/TP11-12/exo11.cpp b/sem_2/HLIN202/TP/TP11-12/exo11.cpp new file mode 100644 index 0000000..d99d75a --- /dev/null +++ b/sem_2/HLIN202/TP/TP11-12/exo11.cpp @@ -0,0 +1,74 @@ +#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; +} -- cgit v1.2.3