Question: Evaluate Arithmetic Expressions Requirements: public class Evaluate { public static int expression(String str) { // return the value } } Implement a concrete ArrayStack class
Evaluate Arithmetic Expressions Requirements:
public class Evaluate { public static int expression(String str) { // return the value } } Implement a concrete ArrayStack class that extends the Stack interface as we discussed in the class (any other different Stack class implementation, even if it is implemented by yourself, will not receive any credit).
Write a method that evaluates an arithmatic expression, which is given by a string.
Your implementation is required to use the Stack interface we discussed in the class.
Write a necessary test program to verify the result. For example,
14-3*4+2*5-6*2 (should return 0)
You may want to test all possible corner conditions to make sure your implement is inclusive.
Your implementation only considers +, - and * operators and does not need to consider parentheses.
Implementation should support parentheses. For example:
14-3*(4+2*(5-6))*2 (should return 2)
Stack implementation format
public interface stack {
boolean isEmpty();
boolean isFull();
int size(); //this should return number of data elements
void push (Object item);
Object pop();
Object top();
}
public interfact stack {
boolean isEmpty();
boolean isFull();
int size(); //this should return number of data elements
void push (Object item);
Object pop();
Object top();
}
Array implementation Format
***************************
size()
return k+1
isEmpty()
return k==-1
isFull
return k==CAP-1
------------------
pop()
if (isEmpty()) then
retun null;
else
k=k-1
return Array[k+1]
-------------------
push()
if (isFull()) then
throw SomeException
else
Array[k] --- item
-------------------
top()
if (isEmpty()) then
return null
else
return Array[k];
Answer should have 1 interface (Stack) and 2 classes (Evaluate and ArrayStack).
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
