Question

In: Computer Science

Write a java class program to convert from INFIX TO POSTFIX Using stack operations

Write a java class program to convert from

INFIX TO POSTFIX

Using stack operations

Solutions

Expert Solution

//Code Link => https://repl.it/@FAYAZPASHA/InnocentAgonizingQuote#Main.java

import java.util.Stack;

import java.util.*;

class Main

{

  

  static int Precdence(char ch) //returns the character priority

  {

    switch (ch)

    {

    case '+':

    case '-':

      return 1;

  

    case '*':

    case '/':

      return 2;

  

    case '^':

      return 3;

    }

    return -1;

  }

  

  static String infixToPostfix(String exp)

  {

    // initializing empty String for result

    String result = new String("");

    

    // initializing empty stack

    Stack<Character> stack = new Stack<>();

    

    for (int i = 0; i<exp.length(); ++i)

    {

      char c = exp.charAt(i);

      

      // If the scanned character is an operand, add it to output.

      if (Character.isLetterOrDigit(c)) //if we encounter a operand we append to our results

        result += c;

      

    

      else if (c == '(') //if we encountered a opening parenthesis we push it to the stack

        stack.push(c);

      

      else if (c == ')') // when we encounter a closing parenthesis we check for the priority of the operator residing inside the stack

      {

        while (!stack.isEmpty() && stack.peek() != '(')

          result += stack.pop();

        

        if (!stack.isEmpty() && stack.peek() != '(')

          return "Invalid Expression"; // invalid expression        

        else

          stack.pop();

      }

      else // an operator is encountered

      {

        while (!stack.isEmpty() && Precdence(c) <= Precdence(stack.peek())){

          if(stack.peek() == '(')

            return "Invalid Expression";

          result += stack.pop();

      }

        stack.push(c);

      }

  

    }

  

    // pop all the operators from the stack

    while (!stack.isEmpty()){

      if(stack.peek() == '(')

        return "Invalid Expression";

      result += stack.pop();

    }

    return result;

  }

  

  // Driver method

  public static void main(String[] args)

  {

Scanner sc = new Scanner(System.in);

String exp = sc.nextLine();

    // String exp = "a+b*(c^d-e)^(f+g*h)-i";

    System.out.println(infixToPostfix(exp));

  }

}


Related Solutions

Using a stack, write a program that turns a simple infix arithmetic expression into a postfix...
Using a stack, write a program that turns a simple infix arithmetic expression into a postfix expression. For example, 1 + 2 * 3 becomes 2 3 * 1 +. Also, evaluate the expression to ensure the expression is correct.
* the Algorithm: * write a java program to convert infix to postfix create(OpStk) OpStk.push("#") token...
* the Algorithm: * write a java program to convert infix to postfix create(OpStk) OpStk.push("#") token = nextToken() while (token != "#") if (token is an operand) append token to postfix expression else if (token is "(") // Left paren - Start of sub-expr OpStk.push( token ) else if (token is ")") // Right paren - End of sub-expr pop operators off the stack and append to the postfix expression - stop when you've popped a "(" else (token is...
Using STL stack class, implement in C++ a function that converts an infix expression to postfix...
Using STL stack class, implement in C++ a function that converts an infix expression to postfix expression,
Introduced to data structure using java 2)One of the applications of stack is to convert infix...
Introduced to data structure using java 2)One of the applications of stack is to convert infix expressions to postfix. Given the following infix expression, use the stack method to convert it to postfix. Show your work. x - y / (a + b) + z 3)write a generic method to find the maximum of three variables of generic type (i.e. type T). Note that you must use the compareTo method to compare the values. Also, the code must return one...
(Convert infix to postfix) Note: Postfix notation is a way of writing expression without using parentheses....
(Convert infix to postfix) Note: Postfix notation is a way of writing expression without using parentheses. For example, the expression ( 11 + 12 ) * 13 would be written as 11 12 + 13 * Assume that ALWAYS there is a space between operands and operators in the input expression. Use two stacks, one to store the operands and one to store the operators. Your program only accpets following operators : ( ) + - / * Write a...
**write a java program infix to postfix**showing the expression tree*** I. Input All input data are...
**write a java program infix to postfix**showing the expression tree*** I. Input All input data are from a file "in.dat". The file contains a sequence of infix form expressions, one per line. The character '$' is an end mark. For example, the following file has four infix form expressions: 1 + 2 * 3 ^ ! ( 4 == 5 ) $ 3 * ( 6 - 4 * 5 + 1) + 2 ^ 2 ^ 3 $ 77...
C++ Data Structure Write a program to change following infix expressions to postfix expressions using a...
C++ Data Structure Write a program to change following infix expressions to postfix expressions using a stack a) D-B+C b) C*D+A*B c) (A*B)*C+D*F-C d) (A-4*(B-C)-D/E)*F
Write a class PostFix that has one method covert that converts an infix expression (as a...
Write a class PostFix that has one method covert that converts an infix expression (as a string input) to a postfix. Then Test it in a different class. code in java.
In Java, write class InfixToPostfixConverter co convert an ordinary infix arithmetic expression (assume a valid expression...
In Java, write class InfixToPostfixConverter co convert an ordinary infix arithmetic expression (assume a valid expression is entered) with single-digit integers (to make things easier) such as (6 + 2) • 5 - 8 / 4 to a postfix expression. The postfix version (no parentheses are needed) of this infix expression is 6 2 + 5 * 8 4 / - The program should read the expression into StringBuilder or String infix and use the Stack and Stack Interface class...
Write a program that converts prefix expressions to postfix and postfix expressions to prefix. (java) The...
Write a program that converts prefix expressions to postfix and postfix expressions to prefix. (java) The program for this project should consist of three classes. -The main class should create a GUI that allows the user to input an expression in either prefix or postfix and convert it to postfix or prefix, respectively. -The other class should contain the code to perform the conversions. --->The pseudocode for prefix to postfix, which requires two stacks, is shown below: tokenize the string...
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT