summaryrefslogtreecommitdiff
path: root/sem_4/Algo/TP5/Arbo.h
diff options
context:
space:
mode:
Diffstat (limited to 'sem_4/Algo/TP5/Arbo.h')
-rw-r--r--sem_4/Algo/TP5/Arbo.h115
1 files changed, 115 insertions, 0 deletions
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 <iostream>
+#include <sstream>
+
+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