Write a java program to evaluate postfix expressions containing complex numbers using a stack. This program should contain two classes. The first class Project2 should contain the two methods described below:
The main method, which performs the expression evaluation. The algorithm for evaluating a postfix expression requires a stack of Complex numbers. The pseudocode for evaluating postfix expressions is given below:
while not end of expression
switch next token
case complex number:
push the value onto the stack
case operator:
pop two operands from the stack
evaluate
push result onto the stack
pop the final result off the stack
The user should be allowed to enter and evaluate any number of expressions.
A class method called evaluate, which accepts two complex numbers and a operator and returns the result of performing the operation on those two numbers.
The second class should be a class named Complex. Each complex number should contain a real and imaginary part. Each should be of type double. This class should contain the following methods.
A constructor.
A class method named fromString that accepts a StringTokenizer positioned at a complex number and returns that complex number.
A toString method that converts a complex number to a string.
A add method that adds two complex numbers and returns the result.
A subtract method that subtracts two complex numbers and returns the result.
A multiply method that multiplies two complex numbers and returns the result.
Each complex number will all be enclosed in a pair of parentheses. The operators permitted include +, - and *. You may assume that all expressions are syntactically correct. "