What Is Polish and Reverse Polish Notation in Data Structure?

## Introduction

In the field of computer science, data structures play a vital role in organizing and manipulating data efficiently. One such concept is Polish and Reverse Polish Notation (RPN), which are mathematical notations used to express arithmetic expressions. Both notations have their advantages and are widely used in different applications.

## Polish Notation

**Polish Notation**, also known as prefix notation, was introduced by the Polish logician Jan Lukasiewicz in the 1920s. In this notation, operators are placed before their operands.

For example, instead of writing “3 + 4”, we write “+ 3 4”. This notation eliminates the need for parentheses to indicate the order of operations.

The advantages of Polish Notation include:

__Simplicity:__The notation is straightforward and easy to parse.__Ambiguity-free:__Since the order of operations is unambiguous, there is no need for parentheses.__Easy evaluation:__The expression can be evaluated using a stack-based algorithm.

## Reverse Polish Notation

**Reverse Polish Notation**, also known as postfix notation, was developed by Charles Hamblin in the mid-1950s. In RPN, operators are placed after their operands.

For example, “3 + 4” becomes “3 4 +”. This notation also eliminates the need for parentheses as it follows a strict order of operations.

The advantages of Reverse Polish Notation include:

__Ease of implementation:__Evaluating an RPN expression can be done using a stack-based algorithm, making it simple to implement.__No need for parentheses:__The strict order of operations removes the need for parentheses.__Reduces ambiguity:__RPN eliminates the need for operator precedence rules, reducing ambiguity in complex expressions.

## Comparison between Polish and Reverse Polish Notation

In terms of evaluating arithmetic expressions, both Polish and Reverse Polish Notation achieve the same result. However, there are some notable differences between them.

**Syntax:**Polish Notation places operators before operands, while Reverse Polish Notation places operators after operands.**Parentheses:**Polish Notation requires parentheses to indicate the order of operations, while Reverse Polish Notation does not.**Evaluation:**Both notations can be evaluated using stack-based algorithms, but the process differs slightly.

### Evaluating Polish Notation

To evaluate an expression in Polish Notation, we scan the notation from right to left. When encountering an operator, we apply it to the next two operands. This process continues until only one operand remains, which is the final result.

### Evaluating Reverse Polish Notation

In Reverse Polish Notation evaluation, we scan the notation from left to right. When encountering an operand, we push it onto a stack.

When encountering an operator, we pop the top two operands from the stack, apply the operator to them, and push the result back onto the stack. This process continues until all operators are processed and only one operand remains on the stack.

## Applications

Both Polish and Reverse Polish Notation are used in various applications, including:

- Calculator applications
- Compiler design
- Computer algebra systems
- Symbolic manipulation

## Conclusion

In summary, Polish and Reverse Polish Notation are mathematical notations used to express arithmetic expressions. Polish Notation places operators before operands, while Reverse Polish Notation places operators after operands.

Both notations have advantages such as simplicity, unambiguous order of operations, and ease of evaluation. They find applications in areas like calculator applications, compiler design, and computer algebra systems.

By understanding these notations, you can enhance your understanding of data structures and algorithms in the field of computer science.