Write a Java program that will process several rational expr
Solution
import java.util.*;
public category EvaluateExpressionUsingStacks
produce stacks for operators and operands */
Stack<Integer> op = new Stack<Integer>();
Stack<Double> val = new Stack<Double>();
/* produce temporary stacks for operators and operands */
Stack<Integer> optmp = new Stack<Integer>();
Stack<Double> valtmp = new Stack<Double>();
/* settle for expression */
System.out.println(\"Evaluation Of Arithmetic Expression exploitation Stacks Test\ \");
System.out.println(\"Enter expression\ \");
String input = scan.next();
input = \"0\" + input;
input = input.replaceAll(\"-\",\"+-\");
/* Store operands and operators in several stacks */
String worker = \"\";
for (int i = 0;i < input.length();i++)
{
char ch = input.charAt(i);
if (ch == \'-\')
worker = \"-\" + temp;
else if (ch != \'+\' && ch != \'*\' && ch != \'/\')
worker = worker + ch;
else
Boolean it = false;
while (!op.isEmpty())
valuate and store in temporary stack */
if (i == 0)
else if (i == 1)
else if (i == 2)
}
else
}
/* bar all components from temporary stacks to main stacks */
whereas (!valtmp.isEmpty())
val.push(valtmp.pop());
whereas (!optmp.isEmpty())
op.push(optmp.pop());
/* ingeminate once more for same operator */
if (it)
i--;
}
System.out.println(\"\ Result = \"+val.pop());
}
}
