C ++ я могу перевернуть стек таким образом? - PullRequest
0 голосов
/ 01 марта 2019

У меня простая домашняя работа, и я не знаю, правильно ли я это сделал.Я не уверен, что это правильно, чтобы изменить стек в основной функции, как я это сделал.Есть ли лучший способ?

#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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...