#ifndef COMMON_H /** NB : pour éviter les inclusions multiples de common.h **/ #define COMMON_H /** NB : pour éviter les inclusions multiples de common.h **/ #include <stdio.h> #include <stdlib.h> #include <math.h> #include <assert.h> #include <stdbool.h> /* noeud : identifiant entre 0 et N-1 */ typedef int nodeID; /* représente une ville */ struct node_s { char nom[100]; // nom float x; // longitude float y; // latitude int hab; // nombre d'habitants }; typedef struct node_s node; /* représente une liaison possible */ struct edge_s { nodeID i; nodeID j; float d; bool selected; // pour l'algorithme de Kruskal (ou Prim) }; typedef struct edge_s edge; /* import : lit le fichier filename contenant des descriptions de villes et alloue dans le tas un tableau de n villes NB : n est renvoyé via le pointeur n */ node* lireFichier(const char* filename, int* n); /* crée l'ensemble des arêtes susceptibles de relier les villes les arêtes sont allouées dans le tas. Leur nombre na est renvoyé via pointeur */ edge* creerAretes(node* villes, int nv, int* na); /* export : écrit dant le fichier filename les informations nécessaires à l'affichage des arêtes sélectionnées au format geojson */ void exporter(const char* filename, edge* aretes, int na, node* villes, int nv); #endif /** NB : pour éviter les inclusions multiples de common.h **/