summaryrefslogtreecommitdiff
path: root/sem_4/Algo/TP8/graphes.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'sem_4/Algo/TP8/graphes.cpp')
-rw-r--r--sem_4/Algo/TP8/graphes.cpp108
1 files changed, 108 insertions, 0 deletions
diff --git a/sem_4/Algo/TP8/graphes.cpp b/sem_4/Algo/TP8/graphes.cpp
new file mode 100644
index 0000000..fdd386a
--- /dev/null
+++ b/sem_4/Algo/TP8/graphes.cpp
@@ -0,0 +1,108 @@
+#include <iostream>
+#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"<<std::endl;
+ Graphe * grph= new Graphe(12);
+
+ return 0;
+}