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

  FORUM HardWare.fr
  Programmation
  C++

  je coince sur algo recursif :/

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

je coince sur algo recursif :/

n°661659
xiluoc
un pc pour les unirs ....
Posté le 03-03-2004 à 08:06:27  profilanswer
 

je dois ecrire une fonction qui afficher le contenu d une pile. par exemple la pile  12345 passe a la fonction, qui elle affichera 12345.
 

Code :
  1. #include <cstdlib>
  2. #include <iostream>
  3. #include <stack>
  4. using namespace std;
  5. void reverse_stack(stack<int> s)
  6. {
  7. //je pense que la condition d arret est :
  8.         if (s.empty()) return;
  9.  
  10.         //sinon on lui envoie la pile - l element top().
  11.         s.pop();
  12.         return reverse_stack(s);
  13.         //enfin bref c est faux et je comprend pas trop comment                faire.  
  14. }
  15. int  main()
  16. {
  17. stack<int> test;
  18. for (int i=0; i<10;i++)
  19. test.push(i);
  20. reverse_stack(test);
  21.         return 0;
  22. }


j ai un peu de mal avec le recursif :/


Message édité par xiluoc le 03-03-2004 à 08:07:03
mood
Publicité
Posté le 03-03-2004 à 08:06:27  profilanswer
 

n°661669
Ace17
Posté le 03-03-2004 à 08:48:27  profilanswer
 

Pourquoi ta fonction d'affichage s'appelle reverse?
edit : il est ou l'affichage d'ailleurs


Message édité par Ace17 le 03-03-2004 à 08:49:10
n°661680
nraynaud
lol
Posté le 03-03-2004 à 09:13:07  profilanswer
 

Code :
  1. void reverse_print(stack<int> s)
  2.   {
  3.             // si c'est vide on se casse
  4.             if (s.empty()) return;
  5.        
  6.             //on prend le sommet de la pile
  7.             int val = s.pop();
  8.             //on imprime le fond de la pile
  9.             reverse_print(s);
  10.             //on imprime le sommet de la pile
  11.             cout << val;
  12.   }


 
tu noteras qu'on stocke le contenu de s sur la pile d'appels, et que c'est pas récursif terminal (intrinsèquement, ça ne l'est pas).


---------------
trainoo.com, c'est fini
n°661755
xiluoc
un pc pour les unirs ....
Posté le 03-03-2004 à 10:21:56  profilanswer
 

merci je ne savais pas qu on pouvais faire int val = s.pop()  
mais parcontre ja i une erreur et je vois pas ou !

Code :
  1. #include <cstdlib>
  2. #include <iostream>
  3. #include <stack>
  4. using namespace std;
  5. void reverse_print(stack<int> s)
  6. {
  7.         // si c'est vide on se casse
  8.                 if (s.empty()) return;
  9.                 //on prend le sommet de la pile
  10.  int val = s.pop();
  11.                 //on imprime le fond de la pile
  12.                 reverse_print(s);
  13.                 //on imprime le sommet de la pile
  14.                 cout << val;
  15. }
  16. int  main()
  17. {
  18. stack<int> test;
  19. for (int i=0; i<10;i++) test.push(i);
  20. reverse_print(test);
  21. return 0;
  22. }


 

Code :
  1. g++ -o tut2_3.out tut2_3.cpp
  2. tut2_3.cpp: Dans function « void reverse_print(std::stack<int, std::deque<int,
  3.    std::allocator<int> > > ) »:
  4. tut2_3.cpp:17: error: void value not ignored as it ought to be
  5. zsh: exit 1     g++ -o tut2_3.out tut2_3.cpp


apperement il aime pas le int val=s.pop() c est normal, elle renvoie pas d int cette fonction.
 
 :sweat:
 
en remplacant pop par top() erreur de segmentation


Message édité par xiluoc le 03-03-2004 à 10:23:58
n°661763
ZeMin
Posté le 03-03-2004 à 10:28:19  profilanswer
 

C'est quoi le header de la classe Stack?

n°661784
xiluoc
un pc pour les unirs ....
Posté le 03-03-2004 à 10:41:38  profilanswer
 

hum sous linux je fais comment pour aller voir ca ?

n°661791
nraynaud
lol
Posté le 03-03-2004 à 10:46:25  profilanswer
 

http://www.sgi.com/tech/stl/stack.html
 
il va falloir apprendre à sortir les doigts du cul.
 
tu remplaces

Code :
  1. int val = s.pop();


par

Code :
  1. int val = s.top();
  2. s.pop();


---------------
trainoo.com, c'est fini
n°661799
xiluoc
un pc pour les unirs ....
Posté le 03-03-2004 à 10:52:10  profilanswer
 

merde je suis vraiment ***
merci !!!!


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

  je coince sur algo recursif :/

 

Sujets relatifs
Algo de compression bmp[ALGO] Logiciel qui permet de cre des algos ?
où trouver des cours pour les algo?[algo] rendu planetaire
[Algo] Est-ce que mon algo de tri marche?exercice d'algo noté : help me please !!
[delphi] listing de fichier et sous-repertoires sans recursif ?algo de regulation
algo schematique[ALGO] Infos sur l'algo de Hirschberg
Plus de sujets relatifs à : je coince sur algo recursif :/


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