blob: fdd386a53af4aaa4084644af7a8e92552ce9a0cf (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
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;
}
|