#include #include "./graphes.h" Sommet::Sommet(){ nbVoisins= 0; Voisins = NULL; } Sommet::Sommet( int n,Sommet ** tab){ nbVoisins = n; Voisins = tab; } int Sommet::getNbVoisins(){ return nbVoisins; } Sommet ** Sommet::getVoisins(){ return Voisins; } void Sommet::setVoisins(Sommet ** t, int taille){ nbVoisins = taille; Voisins= t; } void Sommet::addVoisins(Sommet * s){ nbVoisins ++; Sommet ** tmp = new Sommet*[nbVoisins]; for (int i = 0; i < nbVoisins-1; i ++){ tmp[i]=Voisins[i]; } tmp[nbVoisins - 1 ]= s; Voisins = tmp; } void Sommet::removeSommet (Sommet * s){ nbVoisins --; Sommet ** tmp= new Sommet*[nbVoisins]; int j = 0; for (int i = 0; i < nbVoisins+1;i++){ if (!(Voisins[i]==s)){ tmp[j]= Voisins[i]; j ++; } } Voisins = tmp; } bool Sommet::estVoisin(Sommet * s){ int i = 0; bool found= false; while (!found && i < nbVoisins ){ found = (Voisins[i]==s); } return found; } Graphe::Graphe(int n){ nbSum = n; Sumtab = new Sommet*[nbSum]; for (int i = 0 ; i < nbSum; i ++){ Sumtab[i] = new Sommet(); } } Graphe::Graphe(int n, Sommet ** tab){ nbSum = n; Sumtab = tab; } int Graphe::getNbSum(){ return nbSum; } Sommet ** Graphe::getSommets(){ return Sumtab; } void Graphe::setSommet(Sommet ** sum){ Sumtab= sum; } void Graphe::addSommet(Sommet * s){ nbSum++; Sommet ** tmp = new Sommet*[nbSum]; for (int i = 0; i < nbSum-1; i ++){ tmp[i]=Sumtab[i]; } tmp[nbSum - 1 ]= s; Sumtab = tmp; } void Graphe::removeSommet(Sommet * s){ nbSum--; Sommet ** tmp = new Sommet*[nbSum]; int j = 0; for (int i = 0; i < nbSum+1; i ++){ if (!(Sumtab[i]==s)){ tmp[j]= Sumtab[i]; j ++; } } tmp[nbSum - 1 ]= s; Sumtab = tmp; } bool Graphe::estdansgraphearc(Sommet * s1, Sommet * s2){ return s1->estVoisin(s2)||s2->estVoisin(s1); } int main ( int argc, char ** argv){ std::cout<<"Creation d'un graphe de 12 sommets"<