diff options
| author | Gaspard Coulet <gaspard.coulet@mines-ales.org> | 2021-04-28 23:05:53 +0200 |
|---|---|---|
| committer | Gaspard Coulet <gaspard.coulet@mines-ales.org> | 2021-04-28 23:05:53 +0200 |
| commit | 9fe033ea88c2f705ec18c232873d056e0c229d72 (patch) | |
| tree | 0647dc8c51610c7336c88c04de2068ea14b21e17 /sem_2/HLIN202/TP/TP11-12/exo11.cpp | |
Initial commit
Diffstat (limited to 'sem_2/HLIN202/TP/TP11-12/exo11.cpp')
| -rw-r--r-- | sem_2/HLIN202/TP/TP11-12/exo11.cpp | 74 |
1 files changed, 74 insertions, 0 deletions
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 <iostream>
+
+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;
+}
|
