1) Soit G=(V,E) un graph simple, non orienté, sans boucles. On dit que G admet une étoile de taille k, k >=0 ssi il existe un sommet x tel que * V(X) est un stable * |V(X)| = k, où V(X) est l'ensemble des voisins de x. Ecrire une méthode qui retourne la taille maximum d'une étoile d'un graphe, ou -1 si le graphe n'admet pas d'étoile. 2) Soit G=(V,E) un graphe simple, non orienté, sans boucle, connexe. On dit que G est biparti ssi il exsite V_1, V_2 inclus dans V tels que * V_1 \inter V_2 = vide * V = V_1 \union V_2 * V_1 est un stable, et V_2 est un stable a)Ecrire une méthode qui détermine si un graphe est biparti ou non (et qui si il est biparti affiche une partition possible V_1, V_2) b)Traiter le cas avec plusieurs composantes connexes 3) Soit G=(V,E) un graphe simple, non orienté, sans boucle. Ecrire une méthode boolean existeStable(int k) qui détermine si il existe un stable de taille k dans G. On utilisera une méthode "brute force" consistant à essayer tous les sous ensembles de taille k du graphe. 4) Reecrire le toString de graphe afin que, par exemple, le graphe sur les sommets 0, 1, 2 de matrice truetruetrue falsefalsetrue truetruefalse s'affiche 0 1 2 < ----> --------> ----> <-------- <----