Write a method named convertInfixToPostfix that accepts an Infix expression as a parameter and converts it to its Postfix equivalent by implementing the algorithm given in Figure 6.10 of the required text book. Note that the Infix expression does not need to be a fully parenthesized expression. Your method should have the following signature and should be included in a class called ExpressionConversion. public String convertInfixToPostfix(String infixExp) { /* your implementation here*/ } Solution import java.util.Scanner; //for user input public class ExpressionConversion { public static void main(String[] args) //main function { String infixExp,postfixExp; Scanner in = new Scanner(System.in); System.out.println(\"Enter Infix Expression : \"); infixExp = in.next(); postfixExp = convertInfixToPostfix(infixExp); System.out.println(\"Postfix Expression : \" + postfixExp); } public static String convertInfixToPostfix(String infixExp) //function to convert infix to postfix { int len = infixExp.length(); Stack s = new Stack(len); int i=0; char op; String postfixExp = \"\"; for(i=0; i < len; i++) { if(infixExp.charAt(i) == \'+\' || infixExp.charAt(i) == \'-\' || infixExp.charAt(i) == \'*\' || infixExp.charAt(i) == \'/\' || infixExp.charAt(i) == \'(\' || infixExp.charAt(i) == \')\') { switch(infixExp.charAt(i)) { case \'(\' : s.push(infixExp.charAt(i)); break; case \')\' : op = s.pop(); while(op != \'(\') { postfixExp = postfixExp + op; op = s.pop(); } break; default: while(preceed(s.peek()) >= preceed(infixExp.charAt(i))) postfixExp = postfixExp + s.pop(); s.push(infixExp.charAt(i)); } } else postfixExp = postfixExp + infixExp.charAt(i); } while(!s.isEmpty()) postfixExp = postfixExp + s.pop(); return postfixExp; } static int preceed(char st) //function to check the precedenceof operators { switch(st) { case \'*\' : case \'/\' : return 3; case \'+\' : case \'-\' : return 2; default : return 1; } } } class Stack //creating stack to implement infix to postfix conversion { int maxSize; char[] stackArray; int top; public Stack(int max) { maxSize = max; stackArray = new char[maxSize]; top = -1; } public void push(char item) { stackArray[++top] = item; } public char pop() { return stackArray[top--]; } public char peek() { if(!isEmpty()) return stackArray[top]; else return 0; } public boolean isEmpty() { return (top == -1); } }.