Bonjour,
Pour être direct, voila mon code :
En gros, j'ai deux arbres et je voudrais qu'il se croise, c'est à dire qu'une branche de l'un devienne une branche de l'autre et inversement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 void Foret ::CrossOver(int arb1, int arb2) { cout << __func__<<endl; if( arb1 < this->bois.size() && arb2 < this->bois.size() ) { Arbre * tmp1 = new Arbre; Arbre * tmp2 = new Arbre; tmp1 = RetourneBranche(arb1); tmp2 = RetourneBranche(arb2); if( tmp1 != NULL && tmp2 != NULL) { Arbre * temp = new Arbre; temp = NULL; temp = tmp1; tmp1 = tmp2; tmp2 = temp; temp = NULL; delete temp; } } cout << "Fin " << __func__<<endl; }
Ce que je fais marche, car quand j'affiche les pointeurs, et les attributs de mes branches, elles sont bien inversés. Mais je ne sais pas pourquoi, elles ne sont pas changés lorsque j'affiche leurs arbres.
Si vous pouviez m'éclairer...
Partager