Question: Write a C++ program to convert an infix expression to a postfix expression using a stack. Hint: In a postfix expression operators appear after their

Write a C++ program to convert an infix expression to a postfix expression using a stack.

Hint: In a postfix expression operators appear after their operands, whereas in an infix expression they appear between their operands. Process the symbols in the postfix expression one-by-one. Output operands immediately, but save the operators in a stack until they are needed. Pay special attention to the precedence of the operators. (basic operators: +, -, x, /, ( ) and exponentiation operator ^^^)

The algorithm for converting from infix to postfix notation is given as follows. You don't have to use it if you find your own algorithm to do. This is for your reference only. You need to think how to add the exponentiation operator into the algorithm. I leave it to you to figure out.

Algorithm:

initialize an operator stack, s while not at the end of the infix expression do the following:

read the next symbol in case the symbol is

an operand : write the operand

'(' : push '(' onto s

')' : pop and write all operators until encountering '(', then pop '('

'*'or '/' : pop and write all '*' and '/'

operators from the top down to,

but not including, the top-most

'(', '+' or '-' or to the bottom of the stack push the new symbol, '*' or '/'

'+'or'-' : pop and write all operators from the top down to, but not including, the topmost '(' or to the bottom of the stack push the new symbol, '+' or '-' end-of-expression: pop and write all operators

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!