aboutsummaryrefslogtreecommitdiff
path: root/semestre 3/structures des données/tme/tme6-11/Reseau.h
diff options
context:
space:
mode:
Diffstat (limited to 'semestre 3/structures des données/tme/tme6-11/Reseau.h')
-rw-r--r--semestre 3/structures des données/tme/tme6-11/Reseau.h41
1 files changed, 41 insertions, 0 deletions
diff --git a/semestre 3/structures des données/tme/tme6-11/Reseau.h b/semestre 3/structures des données/tme/tme6-11/Reseau.h
new file mode 100644
index 0000000..dc618a1
--- /dev/null
+++ b/semestre 3/structures des données/tme/tme6-11/Reseau.h
@@ -0,0 +1,41 @@
+#ifndef __RESEAU_H__
+#define __RESEAU_H__
+#include "Chaine.h"
+
+typedef struct noeud Noeud;
+
+/* Liste chainee de noeuds (pour la liste des noeuds du reseau ET les listes des voisins de chaque noeud) */
+typedef struct cellnoeud {
+ Noeud *nd; /* Pointeur vers le noeud stock\'e */
+ struct cellnoeud *suiv; /* Cellule suivante dans la liste */
+} CellNoeud;
+
+/* Noeud du reseau */
+struct noeud{
+ int num; /* Numero du noeud */
+ double x, y; /* Coordonnees du noeud*/
+ CellNoeud *voisins; /* Liste des voisins du noeud */
+};
+
+/* Liste chainee de commodites */
+typedef struct cellCommodite {
+ Noeud *extrA, *extrB; /* Noeuds aux extremites de la commodite */
+ struct cellCommodite *suiv; /* Cellule suivante dans la liste */
+} CellCommodite;
+
+/* Un reseau */
+typedef struct {
+ int nbNoeuds; /* Nombre de noeuds du reseau */
+ int gamma; /* Nombre maximal de fibres par cable */
+ CellNoeud *noeuds; /* Liste des noeuds du reseau */
+ CellCommodite *commodites; /* Liste des commodites a relier */
+} Reseau;
+
+Noeud* rechercheCreeNoeudListe(Reseau *R, double x, double y);
+Reseau* reconstitueReseauListe(Chaines *C);
+void ecrireReseau(Reseau *R, FILE *f);
+int nbLiaisons(Reseau *R);
+int nbCommodites(Reseau *R);
+void afficheReseauSVG(Reseau *R, char* nomInstance);
+#endif
+