方程式ソルバーのセクションに問題があります。後置式を保持するオブジェクトの配列があり、このメソッドは各値を評価します。
私が抱えている問題は、リストが空であることを教えてクラッシュすることです (この時点で: double num1 = ((double)operandStack.pop());)
誰かが私がここで間違ったことを教えてもらえますか?
DSAQueue<Object> postfixQueue = new DSAQueue<Object>();
.
.
.
.
private double evaluatePostfix (Queue<Object> postfixQueue)
{
DSAStack<Double> operandStack = new Stack<Double>();
while (postfixQueue.isEmpty() == false)
{
if (postfixQueue.peek() instanceof Double)
{
operandStack.push((Double)(postfixQueue.dequeue()));
}
else
{
double num1 = ((double)operandStack.pop());
double num2 = ((double)operandStack.pop());
char operator = ((char)postfixQueue.dequeue());
double result = executeOperation (operator, num1, num2);
operandStack.push(result);
}
}
double solution = operandStack.top();
return solution;
}