Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Reverse Polish Notation
#1
A tutorial that my teacher linked shows 9 7 - 2 / being invalid, but I don't see how it is.
My thought process:
After 9, 7 is read in, stack is:
7
9

- is read in, 9 and 7 is popped off, and 9 - 7 is pushed in:
2

The 2 after - is read in and pushed in:
2
2

/ is read in, leading to both 2's being popped off and 2/2 to be pushed in:
1

The tutorial shows that right after 9 -7 is calculated, two numbers are attempted to be popped off the stack, leading to an error because the stack currently only has 1 number in it. Am I doing something wrong?
Reply
#2
It can also be 2 9 7 - / for it to work.

If you want to visualize it:


InputOperationStack
2Push Back[2]
9Push Back[2,9]
7Push Back[2,9,7]
-Subtract[2,(9-7)]
-Push Result[2,2]
/Divide[(2/2)]
/Push Result[1]


Likewise, I think yours is still correct.


InputOperationStack
9Push Back[9]
7Push Back[9,7]
-Subtract[9-7]
-Push Result[2]
2Push Back[2,2]
/Divide[2/2]
/Push Result[1]
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)