Bonsoir,

Je voudrais implémenter la version itérative de la copie d'un arbre binaire de recherche dans un autre ABR.

La version récursive est la suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
node * copier(node* A, node* B)
{
  if(A!=NULL) 
   {
       B=inserer_rec(B,A->val);
       copier(A->FG,B);
       copier(A->FD,B);
   }
   return B;
}
Pour la version itérative j'ai pensé à utiliser une file dont les cellules renferment les nœuds de l'arbre originale:

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
 
node * copie(node* A, node* B)
 {
     File* F;
     node* root; cellule* a;
 
     if (A!=NULL)
      enfiler(A,F);
     while(!FileEstVide(F))
     {
         root=F->tete->valeur;   /* la cellule contient un nœud */
         B=inserer_rec(B,root->val);   /* le nœud contient un entier */
         defiler(F);
         enfiler(root->FG,F);
         enfiler(root->FD,F);
     }
 
     return B;
 }
Je n'arrive pas à récupérer l'arbre B pour l'afficher.
Pourriez-vous m'aider à repérer le problème?

Merci d'avance