diff --git a/TP/TP3.md b/TP/TP3.md
deleted file mode 100644
index dad218f..0000000
--- a/TP/TP3.md
+++ /dev/null
@@ -1,96 +0,0 @@
-TP Graphes 3 : Parcours et Coloration 
-============
-
-Le TP est prévu pour être fait en utilisant le codage des graphes à l'aide de matrices d'adjacence.
-Pour plus de clarté, vous pouvez utiliser un nouveau fichier, en copiant les structures et fonctions nécessaires depuis les TPs précédants.
-
-- - - - -
-Exercice 1 : Parcours en largeur
-----------
-
-Pour cet exercice, vous aurez besoin de file FIFO (First In, First Out).
-Vous pouvez par exemple utiliser la classe [`LinkedList`](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/LinkedList.html), instanciée pour les entiers avec `LinkedList<Integer>`.
-Pour utiliser une LinkedList en tant que file FIFO, vous pouvez utiliser les méthodes :  
-```
-public boolean isEmpty() : Returns true if this collection contains no elements.
-Integer   remove()  : Retrieves and removes the head (first element) of this list.
-boolean   offer​(E e) : Adds the specified element as the tail (last element) of this list.
-```
-
-**Question :**
-
-Ecrire une fonction qui, étant donnés un graphe g et un sommet v de ce graphe, renvoie sous forme de file FIFO l'ensemble des voisins de v dans g :
-```
-public LinkedList<Integer> getVoisins(int i);
-```
-
-![Parcours en Largeur](parcoursLargeur.png)
-
-**Question :**
-
-Ecrire une fonction effectuant le parcours en largeur d'un graphe g à partir d'un sommet v. 
-On pourra se contenter d'afficher sur la sortie standard la numérotation ainsi que les distances obtenues, plutôt que de les renvoyer :
-```
-public void parcoursLargeur(int v)
-```
-
-**Question :**
-
-Tester sur un graphe (au hasard celui des frontières). Cela correspond-t-il à une exécution manuelle de l'algorithme ?
-
-
-- - - - -
-Exercice 2 : Parcours en profondeur
-----------
-
-Pour implémenter le parcours en profondeur d'un graphe, nous aurons besoin d'une pile.
-La classe `LinkedList` permet également de simuler des piles, avec les méthodes : 
-```
-public boolean isEmpty() : Returns true if this collection contains no elements.
-Integer   pop() : Pops an element from the stack represented by this list.
-void  push​(int i) : Pushes an element onto the stack represented by this list.
-```
-
-
-**Question :**
-
-Ecrire une fonction effectuant le parcours en profondeur d'un graphe g à partir d'un sommet v. 
-On pourra se contenter d'afficher sur la sortie standard la numérotation de premier passage plutôt que de les renvoyer :
-```
-public void parcoursProfondeur(int i);
-```
-
-![Parcours en Profondeur](parcoursProfondeur.png)
-
-**Question :**
-
-Tester sur un graphe (au hasard celui des frontières). Cela correspond-t-il à une exécution manuelle de l'algorithme ?
-
-**Question :**
-
-Adaptez votre code pour également calculer, puis afficher, la numérotation de dernier passage.
-
-- - - - -
-Exercice 3 : Algorithme de Welsh-Powell
-----------
-
-On va implémenter l'algorithme de Welsh-Powell de coloriage glouton des graphes.
-Les premières questions visent à donner des fonctions aidant à l'implémentation de l'algorithme. A vous de les suivre ou non.
-
-**Question : Liste des sommets selon leur degré**
-
--Créer une fonction `private int[] tableauDegre();` renvoyant un tableau où la case i contient le degré du sommet i.
-
--Créer une fonction `private int indiceMax(int[] tab);` renvoyant l'indice de la plus grande valeur du tableau tab.
-
--En utilisant les deux premières fonctions, créer une fonction `private LinkedList<Integer> listeDegre()` renvoyant une liste des sommets classés selon leur degré.
-
-**Question**
-
-![Algorithme de Welsh-Powell](WelshPowell.png)
-
-**Question**
-
-Enfin, implémentez l'algorithme de Welsh-Powell.
-
-Indice : Vous aurez besoin de la liste des sommets triés selon leur degré. On peut retirer un élément i donné de la liste l avec `l.remove((Integer) i)`.
\ No newline at end of file
diff --git a/TP/TP4.md b/TP/TP4.md
deleted file mode 100644
index 625e1a9..0000000
--- a/TP/TP4.md
+++ /dev/null
@@ -1,67 +0,0 @@
-TP Graphes 4 : Plus Court Chemin et Arbre Recouvrant Minimal
-============
-
-Le TP est prévu pour être fait en utilisant le codage des graphes à l'aide de matrices d'adjacence.
-Pour plus de clarté, vous pouvez utiliser une nouvelle classe, en copiant les structures et fonctions nécessaires depuis les TPs précédants.
-
-
-- - - - -
-Exercice 0 : Graphes valués
-----------
-
-Nous avons enrichi nos graphes avec une valuation des arêtes.
-
-**Question :**
-
-Comment intégrer cela à notre structure de données ?
-
-
-Quel fonction(s) faut-il modifier pour prendre en compte cet enrichissement ?
-
-**Question :**
-
-Créez une nouvelle classe GraphesValues.java contenant la structure et les primitives nécessaires à la manipulation des graphes valués.
-
-
-- - - - -
-Exercice 1 : Algorithme de Dijkstra
-----------
-
-
-
-L'algorithme de Dijkstra renvoie deux données : la fonction d donnant la distance minimale entre la source et un sommet, et la fonction père donnant la direction à prendre pour atteindre cette distance minimale.
-
-**Question :**
-
-Une fonction des sommets vers un entier (ou un autre sommet) sera représentée par un tableau où la case i contient la valeur de la fonction pour i.
-
-Nous souhaitons cependant renvoyer deux fonctions. Comment modéliser cela ?
-
-**Question :**
-
-Implémentez l'algorithme de Dijsktra, que je redonne ci-dessous :
-
-![Algorithme de Dijkstra](dijkstra.png)
-
-
-**Question :**
-
-Testez votre algorithme en reprenant le graphes des frontières avec des valuation de votre choix.
-Vérifier à la main que l'algorithme effectue les bons calculs.
-
-
-
-- - - - -
-Exercice 2 : Algorithme de Prim
-----------
-
-Pour simplifier l'implémentation, on se contentera d'afficher sur la sortie standard les arêtes sélectionnées. On renverra tout de même la valuation totale de l'arbre couvrant.
-
-![Algorithme de Prim](prim.png)
-
-
-**Question :**
-Implémentez l'algorithme de Prim. Il n'y a pas besoin de modéliser l'ensemble T puisque l'on va l'afficher sur la sortie standard tout au long de l'algorithme.
-
-**Question :**
-Testez et vérifiez votre implémentation sur un exemple, au hasard le graphe des frontières.
\ No newline at end of file
diff --git a/TP/WelshPowell.png b/TP/WelshPowell.png
deleted file mode 100644
index 333a2c1..0000000
Binary files a/TP/WelshPowell.png and /dev/null differ
diff --git a/TP/dijkstra.png b/TP/dijkstra.png
deleted file mode 100644
index 5bfae8d..0000000
Binary files a/TP/dijkstra.png and /dev/null differ
diff --git a/TP/fonctionsAide.c b/TP/fonctionsAide.c
deleted file mode 100644
index b81e812..0000000
--- a/TP/fonctionsAide.c
+++ /dev/null
@@ -1,85 +0,0 @@
-#include<graph.h>
-#include <math.h>
-
-
-void visuelGraphe(graphe g){
-	int taille=1000;
-    int origine=taille/2;
-    int distance=4*origine/5;
-    int tailleVert=taille/20;
-	    InitialiserGraphique();
-    CreerFenetre(10,10,taille,taille);
-
-    int i,j;
-    int x,y;
-    char* nV=malloc(2);
-    *nV='0';
-    *(nV+1)='\0';
-    int* cX=calloc(g.ordre,sizeof(int));
-    int* cY=calloc(g.ordre,sizeof(int));
-    for(i=0;i<g.ordre;i++){
-    	x=(int) origine+distance*cos(2*M_PI*i/g.ordre);
-    	y=(int) origine+distance*sin(2*M_PI*i/g.ordre);
-    	cX[i]=x+tailleVert/2;
-    	cY[i]=y+tailleVert/2;
-    	RemplirArc(x,y,tailleVert,tailleVert,0,360); 
-    	EcrireTexte(x,y,nV,2);
-    	(*nV)++;
-
-    }
-
-
-//Version si le graphe est une matrice d'adjacence
-    for(i=0;i<g.ordre;i++){
-    	    for(j=0;j<g.ordre;j++){
-    	    	if(g.adj[i][j]!=0){
-    	    		DessinerSegment(cX[i],cY[i],cX[j],cY[j]);
-    	    	}
-    	    }
-    	}
-//Version à utiliser si le graph est un tableau de listes chaînées
-/*
- maillon* read;
-    for(i=0;i<g.ordre;i++){
-            read=g.voisins[i];
-            while(read!=NULL){
-    	       	DessinerSegment(cX[i],cY[i],cX[read->valeur],cY[read->valeur]);
-                read=read->suivant;
-                }
-    	    	}
-*/
-    Touche();
-    FermerGraphique();
-
-}
-
-
-
-//Aides matrices
-//Creation matrice carrée vide :
-int** creerMatriceId(int taille){
-    int** res=calloc(taille,sizeof(int*));
-    for(int i=0;i<taille;i++){
-        res[i]=calloc(taille,sizeof(int));
-        for(int j=0;j<taille;j++){
-            res[i][j]=(i==j)?1:0;
-        }
-    }
-    return res;
-}
-
-//Creation copie d'une matrice carree :
-int** recopierMatrice(int **m,int taille){
-   int** creerMatriceId(int taille){
-    int** res=calloc(taille,sizeof(int*));
-    for(int i=0;i<taille;i++){
-        res[i]=calloc(taille,sizeof(int));
-        for(int j=0;j<taille;j++){
-            res[i][j]=m[i][j];
-        }
-    }
-    return res;
-} 
-}
-
-
diff --git a/TP/parcoursLargeur.png b/TP/parcoursLargeur.png
deleted file mode 100644
index 01dd760..0000000
Binary files a/TP/parcoursLargeur.png and /dev/null differ
diff --git a/TP/parcoursProfondeur.png b/TP/parcoursProfondeur.png
deleted file mode 100644
index 5ff2aee..0000000
Binary files a/TP/parcoursProfondeur.png and /dev/null differ
diff --git a/TP/prim.png b/TP/prim.png
deleted file mode 100644
index b077d81..0000000
Binary files a/TP/prim.png and /dev/null differ