polish-notation-converter
v1.0.0
Published
A simple converter from infix to polish notation (both normal/prefix and reverse/postfix) and vice versa.
Downloads
5
Readme
Polish Notation Converter
A simple converter from infix to polish notation (both normal/prefix and reverse/postfix) and vice versa.
Algorithm
Infix - Postfix
- Read each element of the expression from left to right.
- Parse the current element:
- If the element is an operand: Add the element to the result string.
- If the element is "(": Push the element onto the stack.
- If the element is ")": Iterate over the array before finding a "(" and pop the elements from the array.
- If the element is an operator: Add every operator of higher or equal precedence (using pemdas) to the result string and push the element to the stack.
- Pop all the rest of the elements from the stack and add them to the result string.
- Return the result string.
Infix - Prefix
Do almost the same as Infix - Postfix, but
- Read each element of the expression from right or left (or reverses the string).
- Analyse the current element: [...] 4. If the element is an operator: Add every operator of higher precedence to the result string and push the element to the stack. [...]
Postfix - Infix
- Read each element of the expression from left to right.
- Parse the current element:
- If the element is an operand Push the element onto the stack.
- If the element is an operator: Remove the two most recent elements from the stack (op1, op2) and push the string "(" + op1 + operator + op2 + ")" onto the stack.
- Pop the most recent element from the stack and add it to the result string.
- Return the result string without the first and last parentheses.
Prefix - Infix
- Read each element of the expression from right to left. [...]