Bonsoir,

J'ai un petit soucis avec un programme que j'ai fait; je veux créer une arbre dont la taille n'est pas fixe (selon les zéros d'un tableau que contient le nœud parent)

Alors je fais une itération de 1 à nombre_de_zeros, à chaque itération je fais une allocation (voir ci-dessous la classe et la fonction qui fait le job). Le problème c'est que lorsque je fais le test de la fonction " void config::niveau_suivant() " l'exécutable est bloqué.
Je pense qu'il y a un problème avec la méthode utilisée (surtout que je débute avec C++).

Merci d'avance pour votre aide

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
class config
{
    int vcoups[9];
    config *fille;
    config *soeur;
 
public:
    config(){for(int i=0;i<9;i++) vcoups[i]=0;fille=NULL;soeur=NULL;valeur=-1000;}
    config(const config& C){for(int i=0;i<9;i++) vcoups[i]=C.vcoups[i];fille=NULL;soeur=NULL;valeur=C.valeur;}
    config *Fille(){return fille;}
    config *Soeur(){return soeur;}
    int Vcoups(int i)const {return vcoups[i-1];}
    int & Vcoups(int i) {return vcoups[i-1];}
    void niveau_suivant();
 
};
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
void config::niveau_suivant()//creer les configurations du niveau suivant, des vecteur qui ont initialement les memes cases de la mere
{
    int i=0,j;
    for(j=0;j<9;j++) if(Vcoups(i)==0) i++;//nombre de coups possibles
    if (i!=0)
    {
        fille=new config;
        fille->Valeur()=111;
        config *p=fille;
        for(j=1;j<i;j++)
        {
            p->soeur=new config;
            p=p->soeur;
        }
 
    }
}