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_4/Algo/TP5/Arbo.h | 115 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 sem_4/Algo/TP5/Arbo.h (limited to 'sem_4/Algo/TP5/Arbo.h') diff --git a/sem_4/Algo/TP5/Arbo.h b/sem_4/Algo/TP5/Arbo.h new file mode 100644 index 0000000..4658710 --- /dev/null +++ b/sem_4/Algo/TP5/Arbo.h @@ -0,0 +1,115 @@ +#ifndef ARBO_H +#define ARBO_H + +#include +#include + +using namespace std; + +typedef int Valeur; + +struct Sommet; +typedef Sommet* Arbo; + + + +typedef Arbo ContCellule; + +/******* Liste chainee Début *******/ +struct Cellule; + +typedef Cellule* ListeCellules; + +struct Cellule{ + ContCellule fils; + ListeCellules Apres; + + Cellule (ContCellule A); + + ListeCellules EstDansListeP(ContCellule A); +// Si A apparait dans la liste, renvoie un pointeur sur la sous liste commençant par A; sinon renvoie NULL + + ListeCellules AjouterSuccesseur(ContCellule A); +// si A appartenait déjà à la liste renvoie la liste +// sinon rajoute A en tete et renvoie le nouvelle liste + + + ListeCellules RetirerSuccesseur(ContCellule A); +// renvoie la liste d'où a été retirée A s'il lui appartenait (sinon renvoie la liste initiale) +}; + +/******* Liste chainee Fin *******/ + +/************Arborescence Debut*************/ +struct Sommet { + Valeur racine; + ListeCellules ListeSuccesseurs; + + + Sommet(Valeur v); + + ListeCellules EstSuccesseurP(Arbo A); +// Si A apparait dans la liste ListeSuccesseurs, renvoie un pointeur sur la sous liste de ListeSuccesseurs commençant par A; sinon renvoie NULL + + void AjouterSuccesseur(Arbo A); +//rajoute A comme fils ainé + + void RetirerSuccesseur(Arbo A); +// si A était un fils, il cesse de l'être +}; + +ostream& operator<<(ostream& os, Sommet& S); + +/************Arborescence Fin*************/ + +/************Traversee recursive Debut*************/ + +void TraverseePrefixeRec(Arbo); + +/************Traversee recursive Fin*************/ + +/**********Pile Début*********/ +struct Pile { + ListeCellules Sommet; + + Pile(); + + bool VideP(); + void Empiler(ContCellule); + ContCellule Depiler(); // pas défini si la pile est vide +}; + +/**********Pile Fin*********/ + +/************Traversee prefixe iterative Debut*************/ + +void TraverseePrefixeIt(Arbo); + +/************Traversee prefixe iterative Fin*************/ + +/**********File Début*********/ +struct File { + ListeCellules Sortie; + ListeCellules Entree; + + File(); + + bool VideP(); + void Enfiler(ContCellule); + ContCellule Defiler(); // pas défini si la pile est vide +}; + +/**********File Fin*********/ + +/************Traversee Largeur Debut*************/ + +void TraverseeLargeur(Arbo); + +/************Traversee Largeur Fin*************/ + + + + + + +#endif -- cgit v1.2.3