Computer-science_A-level_Cie
-
computers-and-components6 主题
-
logic-gates-and-logic-circuits2 主题
-
central-processing-unit-cpu-architecture6 主题
-
assembly-language-4 主题
-
bit-manipulation1 主题
-
operating-systems3 主题
-
language-translators2 主题
-
data-security3 主题
-
data-integrity1 主题
-
ethics-and-ownership3 主题
-
database-concepts3 主题
-
database-management-systems-dbms-1 主题
-
data-definition-language-ddl-and-data-manipulation-language-dml1 主题
-
computational-thinking-skills1 主题
-
algorithms14 主题
-
data-types-and-records2 主题
-
arrays2 主题
-
files1 主题
-
introduction-to-abstract-data-types-adt1 主题
-
programming-basics1 主题
-
constructs2 主题
-
structured-programming1 主题
-
program-development-life-cycle2 主题
-
program-design-2 主题
-
program-testing-and-maintenance3 主题
-
user-defined-data-types1 主题
-
file-organisation-and-access-3 主题
-
floating-point-numbers-representation-and-manipulation3 主题
-
protocols2 主题
-
circuit-switching-packet-switching1 主题
-
processors-parallel-processing-and-virtual-machines5 主题
-
boolean-algebra-and-logic-circuits4 主题
-
purposes-of-an-operating-system-os3 主题
-
translation-software3 主题
-
encryption-encryption-protocols-and-digital-certificates3 主题
-
artificial-intelligence-ai4 主题
-
recursion1 主题
-
programming-paradigms4 主题
-
object-oriented-programming7 主题
-
file-processing-and-exception-handling2 主题
-
data-representation5 主题
-
multimedia3 主题
-
compression2 主题
-
networks-and-the-internet11 主题
expression-evaluation
Reverse Polish Notation (RPN)
What is RPN?
-
Reverse Polish Notation (RPN) is a method of writing mathematical expressions where the operator comes after the operands
-
This is also known as postfix notation
-
Infix:
3 + 4 -
RPN:
3 4 +
-
Why use RPN?
-
No need for brackets: The order of operations is determined by position, not parentheses
-
Easier for computers to evaluate using a stack
-
Always unambiguous
How RPN works
-
RPN uses a stack to evaluate expressions
-
Read from left to right
-
Push numbers onto the stack
-
When an operator is read:
-
Pop the top two values from the stack
-
Apply the operator
-
Push the result back onto the stack
-
-
When the expression ends, the final result is at the top of the stack
Example: evaluate 3 4 + 2 ×
|
Step |
Action |
Stack |
|---|---|---|
|
Read |
Push to stack |
|
|
Read |
Push to stack |
|
|
Read |
Add 3 + 4 → 7 |
|
|
Read |
Push to stack |
|
|
Read |
Multiply 7 × 2 → 14 |
|
-
Final result:
14
Example: convert this infix expression to RPN
(7 − 2 + 8) / (9 − 5)
-
Split the expression into parts:
-
Left-hand side:
(7 − 2 + 8)
-
This becomes:
( (7 − 2) + 8 )
-
Which in RPN is:
7 2 − 8 +
-
Right-hand side:
(9 − 5)
-
In RPN:
9 5 −
-
Combine with the division
-
In RPN, that becomes:
7 2 − 8 + 9 5 − ÷
Examiner Tips and Tricks
RPN follows the evaluation order naturally, so there’s no need for brackets or precedence rules. Just:
-
Work from inside brackets out
-
Convert each sub-expression
-
Add the operator after its operands
Summary
|
Concept |
Description |
|---|---|
|
RPN (Postfix) |
Operators follow operands |
|
Stack |
Used to store and evaluate values |
|
Evaluation method |
Push numbers, pop and evaluate on operator |
|
Benefits |
No brackets, no ambiguity, easy to compute with stack |
Responses