blob: dc618a17b24990ef2b0950627f96d88b93dfa67a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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
|