,
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 :
- void btree::printInOrderSlave (tree t){
- if (t != NULL) {
- printInOrderSlave (t->left);
- cout << t->data << endl;
- printInOrderSlave (t->right);
- }
- }
|
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 :
- void btree::printInOrderSlave (tree t, vector<int> v){
- //idem
- 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 :
- void btree::writeInOrderToFileSlave(tree t,const string& out)
- {
- ofstream outfile;
- outfile.open(out.c_str(),ios_base::app);
- if (t != NULL) {
- outfile << t->data << endl;
- writeInOrderToFileSlave(t->left, out);
- writeInOrderToFileSlave(t->right, out);
- }
- outfile.close();
- }
|
c est pas super open /close a chaque appel, il dois y avoir mieu.
merci pour votre aide.