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