Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
679 connectés 

  FORUM HardWare.fr
  Programmation
  Algo

  Arbre binaire, comment copier tout les elements d un arbre dans ....

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Arbre binaire, comment copier tout les elements d un arbre dans ....

n°692664
xiluoc
un pc pour les unirs ....
Posté le 05-04-2004 à 14:53:29  profilanswer
 

:hello: ,
j aimerai copier tout les elements d un arbre binaire dans un vecteur, ceci en "lisant" larbre de gauche a droite : inorder
 
algo pour inorder :

Code :
  1. void btree::printInOrderSlave (tree t){
  2.     if (t != NULL) {
  3.         printInOrderSlave (t->left);
  4.         cout << t->data << endl;
  5.         printInOrderSlave (t->right);
  6.     }
  7. }


 
mais si a la place de cout << t->data je veus copier la valeur dans un vecteur comment garder a la fois la recursivite et recupere le vecteur ?

Code :
  1. void btree::printInOrderSlave (tree t, vector<int> v){
  2. //idem
  3. v.push_back(t->data);


c est pas bon vu que je ne recupere pas le vecteur, ce qu il faudrais en fait c est un return quelque part.
 
 
exemple pour sauvegarder le contenu dans un fichier j ai fais ca :

Code :
  1. void btree::writeInOrderToFileSlave(tree t,const string& out)
  2. {
  3.     ofstream outfile;
  4.     outfile.open(out.c_str(),ios_base::app);
  5.     if (t != NULL) {
  6.         outfile << t->data << endl;
  7.         writeInOrderToFileSlave(t->left, out);
  8.         writeInOrderToFileSlave(t->right, out);
  9.     }
  10.     outfile.close();
  11. }


c est pas super :/ open /close a chaque appel, il dois y avoir mieu.
 
merci pour votre aide.
 

mood
Publicité
Posté le 05-04-2004 à 14:53:29  profilanswer
 

n°692672
jagstang
Pa Capona ಠ_ಠ
Posté le 05-04-2004 à 14:56:50  profilanswer
 

il faut faire 2 fct...
 

Code :
  1. writeinorder()
  2. {
  3. openfile
  4. _writeinorder()
  5. closefile
  6. }
  7. _writeinorder()
  8. {
  9. if (t != NULL)
  10.    {
  11. outfile << t->data << endl;
  12. writeInOrderToFileSlave(t->left, out);
  13. writeInOrderToFileSlave(t->right, out);
  14.     }
  15. }

n°692686
skeye
Posté le 05-04-2004 à 15:01:42  profilanswer
 

Pouquoi ta fonction récursive renverrait pas un vector tout simplement?
 
[edit]
Chuis pas sûr d'avoir capté le pb, en fait...[:joce]


Message édité par skeye le 05-04-2004 à 15:02:51
n°692714
xiluoc
un pc pour les unirs ....
Posté le 05-04-2004 à 15:09:06  profilanswer
 

JagStang a écrit :

il faut faire 2 fct...
 

Code :
  1. writeinorder()
  2. {
  3. openfile
  4. _writeinorder()
  5. closefile
  6. }
  7. _writeinorder()
  8. {
  9. if (t != NULL)
  10.    {
  11. outfile << t->data << endl;
  12. writeInOrderToFileSlave(t->left, out);
  13. writeInOrderToFileSlave(t->right, out);
  14.     }
  15. }




je dois donc passer a _writeinorder(), un parametre qui est const ofstream& outfile ?

n°692723
jagstang
Pa Capona ಠ_ಠ
Posté le 05-04-2004 à 15:13:17  profilanswer
 

oui par exemple.

n°692728
xiluoc
un pc pour les unirs ....
Posté le 05-04-2004 à 15:15:50  profilanswer
 

ok, et pour le premier pb tas pas une idee ? :)

n°692745
jagstang
Pa Capona ಠ_ಠ
Posté le 05-04-2004 à 15:21:32  profilanswer
 

oui de la même façon, tu déclares un vecteur dans la fonction d'appel (writeinorder), et tu l'alimentes dans la fonction de parcours (_writeinorder)

n°692775
xiluoc
un pc pour les unirs ....
Posté le 05-04-2004 à 15:35:35  profilanswer
 

sa marhce merci !

Code :
  1. vector<int> btree::fillGrid()
  2. {
  3.     vector<int> a;
  4.     _fillGrid(root, a);
  5.     return a;
  6. }
  7. void btree::_fillGrid(tree t, vector<int>& a )
  8. {
  9.     if (t != NULL) 
  10.    {
  11.       a.push_back(t->data);
  12.       _fillGrid(t->left, a);
  13.       _fillGrid(t->right, a);
  14.     }
  15. }


 

n°692777
jagstang
Pa Capona ಠ_ಠ
Posté le 05-04-2004 à 15:37:13  profilanswer
 

:)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Algo

  Arbre binaire, comment copier tout les elements d un arbre dans ....

 

Sujets relatifs
Affichage d un arbre par une file[python] copier un objet
[RESOLU][JS]Transmettre une liste d'elements vers une autre page[java] Copier des fichiers
C++ : Comment copier une valeur d'un fichier .txt et le coller...[JavaScript] Copier un texte quand on click sur une image
Copier / Coller entre workbooksExtraire le contenu binaire d'un fichier vers une chaine de caracteres
Parcourir un arbre DOMliste déroulante qui selectionne d'autres elements d'autres listes?
Plus de sujets relatifs à : Arbre binaire, comment copier tout les elements d un arbre dans ....


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR