Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

In this assignment you will write a program called \" infix.cpp \", that uses a

ID: 3674460 • Letter: I

Question

In this assignment you will write a program called "infix.cpp", that uses a stack, implemented as a singly-linked list, to convert a postfix expression to the corresponding fully-parenthesized infix expression. Consider the following examples:

1.    the postfix expression a b + c d - * will be converted to the infix ((a + b) * (c - d))

2.    the the postfix expression a b + will be converted to the infix (a + b)

3.    the postfix expression a b / c d / / will be converted to infix ((a / b) / (c / d))

4.    for the postfix expression  a b / c * + the program should print the error message "too many operators and not enough operands".

5.    for the postfix expression  a b c d / + e * f   the program should print the error message "too many operands and not enough operators".

6.    for postfix expression a will be converted to the infix (a)

7.    for an empty (string) expression an empty (string) expression will be returned

8.    for postfix + the program should print the error message “too many operators not enough operands”

Notes: 1. Include one space between operands ( eg. a b c d ) and operator (eg. + - * /) in your

                   input to the program.

             2. The only operators to consider are +, -, * and /.

Your program should ask the user for a postfix expression as input, and it should output the corresponding fully-parenthesized infix expression. The program should also ask the user if he/she would like to do another conversion. If so, the user should be able to enter another posfix expression; otherwise the program should terminate. Also, the stack must be implemented using a singly-linked list. Your driver, infix.cpp, should include the definition and declaration files for the class STACK, stack.cpp and stack.h, respectively.

Your program should do error-checking. For example, if the infix expression is invalid, your program should print an error message stating so.

Explanation / Answer

Note that the standard stack class (std::stack) was used. If you need to implement your own just make sure it's got a top(), pop() and push() methods,that's all.