diff --git a/TP/TP1.md b/TP/TP1.md new file mode 100644 index 0000000..0ca53a3 --- /dev/null +++ b/TP/TP1.md @@ -0,0 +1,37 @@ +#TP Graphes 1 : Codage de graphes +============ + +- - - - - +##Exercice 1 : Matrice d'adjacence +---------- +Un graphe sera représenté ici par une structure contenant un entier (son ordre), un entier booléen (orienté ou non), et son ensemble d'arêtes, représenté par sa matrice d'adjacence : + +` +struct graphe{ + int ordre; // l'ordre du graphe + int** adj; // la matrice d'adjacence, donnée par un double tableau dynamique + int oriente; // vaut 0 si le graphe est non orienté, 1 sinon +}; + +typedef struct graphe graphe; +` + +**Question :** +Ecrire une fonction permettant de créer un graphe vide à partir de son ordre et de son orientation : +` +graphe creergraphe(int ord,int or); +` +La fonction devra entre autres réserver de la mémoire pour la matrice d'adjacence. + +**Question :** +Ecrire une fonction prenant un graphe et deux sommets, et ajoutant une arête entre ces deux sommets : +` +void ajoutArete(graphe g,int v,int w){ + ` + +**Question :** +Si le graphe est non orienté, toute arête de v vers w ajoute également une arête de w vers v. +Modifiez la fonction précédente pour en prendre compte. + +**Question :** +Créez dans le main le graphe des frontières de la France (on ne considérera pas les micro-états). \ No newline at end of file