Back to 课程

Computer-science_A-level_Cie

0% Complete
0/0 Steps
  1. computers-and-components
    6 主题
  2. logic-gates-and-logic-circuits
    2 主题
  3. central-processing-unit-cpu-architecture
    6 主题
  4. assembly-language-
    4 主题
  5. bit-manipulation
    1 主题
  6. operating-systems
    3 主题
  7. language-translators
    2 主题
  8. data-security
    3 主题
  9. data-integrity
    1 主题
  10. ethics-and-ownership
    3 主题
  11. database-concepts
    3 主题
  12. database-management-systems-dbms-
    1 主题
  13. data-definition-language-ddl-and-data-manipulation-language-dml
    1 主题
  14. computational-thinking-skills
    1 主题
  15. algorithms
    14 主题
  16. data-types-and-records
    2 主题
  17. arrays
    2 主题
  18. files
    1 主题
  19. introduction-to-abstract-data-types-adt
    1 主题
  20. programming-basics
    1 主题
  21. constructs
    2 主题
  22. structured-programming
    1 主题
  23. program-development-life-cycle
    2 主题
  24. program-design-
    2 主题
  25. program-testing-and-maintenance
    3 主题
  26. user-defined-data-types
    1 主题
  27. file-organisation-and-access-
    3 主题
  28. floating-point-numbers-representation-and-manipulation
    3 主题
  29. protocols
    2 主题
  30. circuit-switching-packet-switching
    1 主题
  31. processors-parallel-processing-and-virtual-machines
    5 主题
  32. boolean-algebra-and-logic-circuits
    4 主题
  33. purposes-of-an-operating-system-os
    3 主题
  34. translation-software
    3 主题
  35. encryption-encryption-protocols-and-digital-certificates
    3 主题
  36. artificial-intelligence-ai
    4 主题
  37. recursion
    1 主题
  38. programming-paradigms
    4 主题
  39. object-oriented-programming
    7 主题
  40. file-processing-and-exception-handling
    2 主题
  41. data-representation
    5 主题
  42. multimedia
    3 主题
  43. compression
    2 主题
  44. networks-and-the-internet
    11 主题
课 Progress
0% Complete

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

  1. Read from left to right

  2. Push numbers onto the stack

  3. When an operator is read:

    • Pop the top two values from the stack

    • Apply the operator

    • Push the result back onto the stack

  4. When the expression ends, the final result is at the top of the stack

Example: evaluate 3 4 + 2 ×

Step

Action

Stack

Read 3

Push to stack

3

Read 4

Push to stack

3 4

Read +

Add 3 + 4 → 7

7

Read 2

Push to stack

7 2

Read ×

Multiply 7 × 2 → 14

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

您的邮箱地址不会被公开。 必填项已用 * 标注