Passage d'un arbre binaire ordonné à un tableau

thaaabet Messages postés 47 Date d'inscription jeudi 20 avril 2006 Statut Membre Dernière intervention 3 mars 2015 - 26 déc. 2006 à 16:44
yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 - 26 déc. 2006 à 21:29
bonjour;
est ce que quelqu'un peut m'aider de me donner l'algorithme ou la fonction c du passage d'un arbre binaire ordoné vers un tableau triée comme l'exemple:

merci d'avance.

7 réponses

Arnaud16022 Messages postés 1329 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 16 juin 2010 2
26 déc. 2006 à 17:59
Comme quel exemple ?

_______________________

Omnia vincit labor improbus
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
26 déc. 2006 à 18:44
C:\Documents and Settings\thabet\Bureau\arbre.JPG        

Les images en local ca marche pas super :)

_____________________________________
Un éditeur de ressources gratuit pour Windows
0
Arnaud16022 Messages postés 1329 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 16 juin 2010 2
26 déc. 2006 à 19:09
ptdrr xD

_______________________

Omnia vincit labor improbus
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
26 déc. 2006 à 19:41
Les vacances scolaires, un pur moment de détente... Encore que, faudrait pas que ça dure trop longtemps.

ciao...
BruNews, MVP VC++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Arnaud16022 Messages postés 1329 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 16 juin 2010 2
26 déc. 2006 à 20:49
Roh cha va, tout le monde n'a pas forcément 40 ans de PC derrière lui .. quoique celle çi était forte de café, j'avoue ^^

_______________________

Omnia vincit labor improbus
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
26 déc. 2006 à 20:53
0
yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 26
26 déc. 2006 à 21:29
Voici une implémentation en c++ de ce problème.
Pas compilable, c'est juste l'idée.

// un objet générique
class objet;

// une info est tout objet qui produit les méthodes donneVal et
// estVide plus les operateurs = < > <= >= ect...

typedef objet info;

// un tableau d'info commençant à l'indice 1
class Tableau;

// un abr
class Abr
{
   info valeur;
   Abr* fg;
   Abr* fd;
public:   Abr() { fg fd 0; }
   void ajout(const info&);
   void explore(Tableau&, int&) const;
};

void Abr::ajout(const info& uneInfo)
{
   if( valeur.estVide() )
   {
      valeur = info(uneInfo);
      return;
   }
   if( uneInfo.donneVal() < valeur.donneVal() )
   {
      if( !fg ) fg = new Abr;
      fg->ajout(uneInfo);
   }
   else
   {
      if( !fd ) fd = new Abr;
      fd->ajout(uneInfo);
   }
}

void Abr::explore(Tableau& unTab, int& ind) const
{
    if( fg ) fg->explore(unTab, ind);
    unTab[ind++] = valeur;
    if( fd ) fd->explore(unTab, ind);
}

// ceci explore l'arbre en remplissant le tableau en ordre croissant
// par récursivité

///////////////////////////////////////////////
// pourrait s'utiliser comme cela

Tableau unTab(1000);
Abr monAbr;
int indice = 1;

// remplissage non trié
remplirTableau(unTab);

// ajout dans l'abr
for(int i=1; i<unTab.nbrElements(); i++)
   monAbr.ajout(unTab[i]);

// ici on rerempli le tableau en le triant
monAbr.explore(unTab, indice);

// seul inconvénient, la duplication des données dans le tab et l'abr
0
Rejoignez-nous