summaryrefslogtreecommitdiff
path: root/sem_4/Algo/TP8
diff options
context:
space:
mode:
Diffstat (limited to 'sem_4/Algo/TP8')
-rw-r--r--sem_4/Algo/TP8/graphes.cpp108
-rw-r--r--sem_4/Algo/TP8/graphes.h29
-rw-r--r--sem_4/Algo/TP8/zbeb.exebin0 -> 14594 bytes
3 files changed, 137 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;
+}
diff --git a/sem_4/Algo/TP8/graphes.h b/sem_4/Algo/TP8/graphes.h
new file mode 100644
index 0000000..9c42c80
--- /dev/null
+++ b/sem_4/Algo/TP8/graphes.h
@@ -0,0 +1,29 @@
+class Sommet {
+private:
+ int nbVoisins;
+ Sommet ** Voisins;
+public:
+ Sommet ();
+ Sommet( int n,Sommet ** tab);
+ int getNbVoisins();
+ Sommet ** getVoisins();
+ void setVoisins(Sommet ** t, int taille);
+ void addVoisins(Sommet * s);
+ void removeSommet (Sommet * s);
+ bool estVoisin(Sommet * s);
+
+};
+class Graphe {
+private:
+ int nbSum;
+ Sommet ** Sumtab;
+public:
+ Graphe(int n);
+ Graphe(int n, Sommet ** tab);
+ int getNbSum();
+ Sommet ** getSommets();
+ void setSommet(Sommet ** sum);
+ void addSommet(Sommet * s);
+ void removeSommet(Sommet * s);
+ bool estdansgraphearc(Sommet * s1, Sommet * s2);
+};
diff --git a/sem_4/Algo/TP8/zbeb.exe b/sem_4/Algo/TP8/zbeb.exe
new file mode 100644
index 0000000..3993c3f
--- /dev/null
+++ b/sem_4/Algo/TP8/zbeb.exe
Binary files differ