diff options
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.h | 41 |
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 + |
