Java program to convert from infix to postfix expression RAT

Java program to convert from infix to postfix expression.
RATIONAL EXPRESSIONS MANIPULATION Write a Java program that will process several \"rational expressions\": for each expression it will return the expression itself in postfix notation and the value of the expression (if the value can be calculated). Assume that the input expressions are always syntactically correct. Your program will read several expressions from the standard input, write the expressions in postfix notation to the standard output, and (if the expression contains numerical operands only) also write the value of the expression to the standard output. Entering emmpty line will end your program execution For example, if the expression entered by a user is (( 5.2-l)\'6+ 1 4 3)\"(2.3.5). 7/2 yeur program will first output this expression in postfix notation 52 1-671431+23 5-721 and then the expression\'s 29.3 If the expression s rational value entered by a user is 12) 2-7 your program will output this expression in postfix notation only x 12+2 7- Input expression consists of the following kinds of tokens - operands (integers such as 5, 12, 101 or variable names such as x, a, b) -operators(0 and brackets:(and) You can use classes 7Token and Tokenizer posted in CP213 code samples section to simplify your input processing Define a precedence function P on operators such that Implement a method for parsing an expression into postfix notation (using operators stack, as described in class and at http://bohr.wiu.calezima/CP 213/notes/expr to postfix.pdt) and a method that evaluates an expression in postfix notation (using operands stack, as described in Al) Use JavaDoc to document your code. Submit the code along with proper documentation. You can assume that input is always correct and valid. No esception handling is required. You can also assume that unary minus sign is not used in the input. Correct treatment of unary minus sign might be a subject of bonus mark in this assignment.

Solution

import java.util.Scanner;
import java.io.IOException;

public class infix_to_post {
private Stack theStack;
private String input;
private String output = \"\";
public infix_to_post(String in) {
input = in;
int stackSize = input.length();
theStack = new Stack(stackSize);
}
public String do_change() {
for (int j = 0; j < input.length(); j++) {
char ch = input.charAt(j);
switch (ch) {
case \'+\':
case \'-\':
gotOper(ch, 1);
break;
case \'*\':
case \'/\':
gotOper(ch, 2);
break;
case \'(\':
theStack.push(ch);
break;
case \')\':
gotParen(ch);
break;
default:
output = output + ch;
break;
}
}
while (!theStack.isEmpty()) {
output = output + theStack.pop();
}
System.out.println(output);
return output;
}
public void gotOper(char opThis, int prec1) {
while (!theStack.isEmpty()) {
char opTop = theStack.pop();
if (opTop == \'(\') {
theStack.push(opTop);
break;
}
else {
int prec2;
if (opTop == \'+\' || opTop == \'-\')
prec2 = 1;
else
prec2 = 2;
if (prec2 < prec1) {
theStack.push(opTop);
break;
}
       else
output = output + opTop;
}
}
theStack.push(opThis);
}
public void gotParen(char ch){
while (!theStack.isEmpty()) {
char chx = theStack.pop();
if (chx == \'(\')
break;
else
output = output + chx;
}
}
public static void main(String[] args)
throws IOException {
String input ;
String output;
   System.out.println(\" NOTE : Entering empty line will end your program execution!! \ \");
   while(1)
   {
       System.out.println(\" Please enter the infix expression : \ \");
       Scanner user_input = new Scanner( System.in );
       input=user_input.next( );
       if(input==\'\ \')
           System.exit(0);
       else
       {
       infix_to_post objj = new infix_to_post(input);
       output = objj.do_change();
       System.out.println(\"Postfix is \" + output + \'\ \');
       }
}
class Stack {
private int maxSize;
private char[] stackArray;
private int top;
public Stack(int max) {
maxSize = max;
stackArray = new char[maxSize];
top = -1;
}
public void push(char j) {
stackArray[++top] = j;
}
public char pop() {
return stackArray[top--];
}
public char peek() {
return stackArray[top];
}
public boolean isEmpty() {
return (top == -1);
}
}
}

Java program to convert from infix to postfix expression. RATIONAL EXPRESSIONS MANIPULATION Write a Java program that will process several \
Java program to convert from infix to postfix expression. RATIONAL EXPRESSIONS MANIPULATION Write a Java program that will process several \
Java program to convert from infix to postfix expression. RATIONAL EXPRESSIONS MANIPULATION Write a Java program that will process several \

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site