У меня простая домашняя работа, и я не знаю, правильно ли я это сделал.Я не уверен, что это правильно, чтобы изменить стек в основной функции, как я это сделал.Есть ли лучший способ?
#include <iostream>
#define STACK_MAX 5
using namespace std;
void push (int *stack, int &i, int number){
if (i<STACK_MAX){
stack[++i]=number;
}
}
int pop (int *stack, int &i){
int temp = 0;
if (i>0)
{
temp = stack[i--];
}
return temp;
}
int main (){
int stack[STACK_MAX], n = 0, i;
push (stack, n, 1);
push (stack, n, 2);
push (stack, n, 3);
push (stack, n, 9);
cout<<"Popped out: "<<pop (stack, n)<<endl;
push (stack, n, 4);
push (stack, n, 5);
cout <<"Stack:"<<endl;
while (i = pop(stack,n)){
cout << i << endl;
}
Эта часть беспокоит меня.Я вижу, что печатная пачка перевернута, но приемлемо ли это?
cout<<"Stack reversed: "<<endl;
for (int j = 1; j < STACK_MAX; j++){
stack[i] = stack[j];
cout<< stack[i] <<endl;
}
return 0;
}