Я понимаю, что калькуляторы основаны на стеке. При использовании большинства калькуляторов, если вы наберете 1 + 2 [enter] [enter]
, вы получите 5
. 1
помещается в стек, +
- оператор, затем 2
помещается в стек. 1-й [enter]
должен вытолкнуть 1
и 2
из стека, добавить их, чтобы получить 3
, затем поместить 3
обратно в стек. 2-й [enter]
не должен иметь доступа к 2
, потому что он фактически нигде не существует.
Как сохранить 2
, чтобы 2-й [enter]
мог использовать его?
2
помещается обратно в стек до 3
или он сохраняется где-то еще для дальнейшего использования? Если он помещается обратно в стек, можно ли вызвать переполнение стека, повторно выполнив [operator] [number] [enter] [enter]
?