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:
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:
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:
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