Bonjour tout le monde,
je dois réaliser une pile en c++ pour mon TP et je bloque au niveau de la méthode push, cette dernière doit empiler un element (entier e) et renvoyer son index dans la pile
voilà ce que j'ai fais
Stack.cpp
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
20
21
22
23
24
25
26
27
28
29 #include "Stack.hpp" Stack::Stack(int n) { current=0; size=n; container=new int(n); } int Stack::push(int e) { container[current++]=e; size++; return -1;//là je sais pas cmt faire pour renvoyer l'indice apres l'ajout } Stack::Stack(const Stack& s) { size=s.size; current=s.current; for(int i=0;i<s.current;i++) { container[i]=s.container[i]; } }
Stack.hpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 #include<stdlib.h> #include<iostream> class Stack{ public: int current; int* container; int size; public: Stack(int n); Stack(const Stack& s); void push(int e); };
main.cpp
à l'execution ça m'affiche:
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 #include"Stack.cpp" using namespace std; int main() { Stack s1(3); s1.push(3); s1.push(5); for(int i=0;i<s1.size; i++) { cout << s1.container[i] << endl; } return 1; }
3
5
0
135153
0
et si je met Stack s1(1) au lieu de 3, ça m'affiche
3
5
0
je pense que j'ai un problème au niveau du constructeur?
Quelqu'un peut m'aider?
Merci
Partager