Bonjour,

Pour être direct, voila mon code :

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;
}
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.
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...