Дана задача:
На каком тесте данный код может упасть:
#include <fstream>
#include <vector>
using namespace std;
class Stack {
public:
bool is_empty() {
return s_top == -1;
}
void push(int element) {
s_top++;
arr[s_top] = element;
}
int pop() {
s_top--;
return arr[s_top + 1];
}
private:
int s_top = -1;
vector<int> arr = vector<int> (100);
};
int main() {
Stack stack1;
ifstream in("postfix.in");
char element;
in >> element;
while(!in.eof()) {
if (!isdigit(element)) {
switch(element) {
case '+':
stack1.push(stack1.pop() + stack1.pop());
break;
case '-':
stack1.push(-(stack1.pop() - stack1.pop()));
break;
case '*':
stack1.push(stack1.pop() * stack1.pop());
break;
default:
;
}
}
else {
stack1.push(atoi(&element));
}
in >> element;
}
ofstream out("postfix.out");
out << stack1.pop();
return 0;
}