Créer et Parcourire Un Arbre n-aire ?
Salut tout le monde , voila en se moment je travaille sur la création et l’exploration d'un arbre N-Aire mais je m'embrouille un peut la :/ Un peut d'aide serai le bienvenue
Voila les code que j'utilise enfin une partie !
Code:
1 2 3 4 5 6 7 8 9
| Noeud::Noeud(auto father,int *tabptr , int h , int w)
{
this->pere=father; //Pointer Le pére
for (int i=0 ; i < h ; i++) //Copier le tableau du dammier
for (int j=0 ; j < w ; j++)
{
Casen[j][i]=(int)tabptr[h * j + i];
}
} |
Code:
1 2 3 4 5 6 7 8 9 10
|
Une partie de l'extraction des fils !
case 0: //Tester Coté droit
if (Casen[j+1][i+1]==CaseVide ) //deplacement seulement
{
auto fils =std::make_unique<Noeud>(this,&(Casen[0][0]),8,8);
fils->EditCase(i , j , CaseVide);
fils->EditCase(i+1,j+1,PionAllie);
this->addChildren(fils);
} //Ajouter au noeud fils pointé |
Code:
1 2 3 4 5 6 7 8 9 10
| void Noeud::addChildren(std::unique_ptr <Noeud >&child)
{
this->children.push_back(std::move(child));
//Ajouter le fils au neoud pére
}
Racine = new Noeud(); // dans le constructeur de l'objet jeux dames
Racine->CopierTableau(&(Case[0][0]),8,8); //Aprés initialisation on copie l'etat initial du jeux
Racine->extractChildren(); //Extraction des enfant |
Après cela je bloque pour ajouter la profondeur et la récursivité une idée une orientation serait la bienvenue
Merci D'avance