Это присвоение класса структур данных и алгоритмов.Я не хочу ответа, мне просто нужна помощь в том, с чего начать.Учитель читает из книги, которая немного помогает, но не сильно.Ниже приведен базовый код с пробелом, который я должен заполнить. Спасибо за любую помощь, которую вы можете мне оказать.
Стеки используются компиляторами для оценки выражений и генерации кода машинного языка.Люди обычно пишут выражения типа 3 + 4 и 7/9, в которых оператор (+ или / здесь) записывается между его операндами.Это называется фиксированной записью.Чтобы вычислить сложное выражение inx, компилятор сначала преобразует выражение в постфиксную запись, в которой оператор записывается справа от двух его операндов.Предыдущие выражения в выражениях будут появляться в постфиксных обозначениях как 3 4 + и 7 9 /, соответственно.Вам необходимо написать программу на Java для оценки выражения в постфиксной записи и отображения результата.Предположим, что выражение ТОЛЬКО содержит круглые скобки, однозначные целые числа (как операнды) и следующие операторы: «+», «-», «*», «/», «%».Выражения в инфиксной записи приведены в файле InfExpressions.txt.Соответствующие выражения в нотации post-xf приведены в файле Post ‑ xExpressions.txt.Ваша программа должна прочитать выражения из файла Post ‑ xExpressions.txt, оценить каждое выражение post-x и отобразить результат в табличном отчете.Частичная Java-программа приведена в файле Post ‑ xEvaluator.java.Заполните отсутствующий код в Post ‑ xEvaluator.java, чтобы программа завершилась и работала правильно.Тестовый драйвер приведен в файле TestDriver.java.Вам необходимо создать пакет с именем labs.lab3, чтобы включить все классы.Пример вывода программы приведен в файле SampleOutput.txt.
Выражения с инфиксами:
1 + 2 - 3 + 4 - 5
1 * 2 * 3 / 2 / 3
1 + 2 * 3 - 4 / 2
1 * 2 + 3 - 4 / 5
1 + 2 * 4 % 3 + 4
( 1 + 2 ) * 3 - 4 / 2
5 * ( 4 + 3 ) - 2 / 1
( ( 1 + 2 ) * 3 - 4 ) / 2
( 5 + 4 % 3 - 2 ) / 2
1 + 2 * 4 / ( 2 + 2 )
Выражения с постфиксами:
1 2 + 3 - 4 + 5 -
1 2 * 3 * 2 / 3 /
1 2 3 * + 4 2 / -
1 2 * 3 + 4 5 / -
1 2 4 * 3 % + 4 +
1 2 + 3 * 4 2 / -
5 4 3 + * 2 1 / -
1 2 + 3 * 4 - 2 /
5 4 3 % + 2 - 2 /
1 2 4 * 2 2 + / +
Пример вывода:
Postfix Expression Evaluation Result
1 2 + 3 - 4 + 5 - -1
1 2 * 3 * 2 / 3 / 1
1 2 3 * + 4 2 / - 5
1 2 * 3 + 4 5 / - 5
1 2 4 * 3 % + 4 + 7
1 2 + 3 * 4 2 / - 7
5 4 3 + * 2 1 / - 33
1 2 + 3 * 4 - 2 / 2
5 4 3 % + 2 - 2 / 2
1 2 4 * 2 2 + / + 3
Неполный код:
package labs.lab3;
import java.util.Stack;
import java.util.EmptyStackException;
public class PostfixEvaluator
{
private Stack<Integer> stack;
private String expression;
public PostfixEvaluator(String e)
{
stack = new Stack<Integer>();
expression = e;
}
// Evaluate the postfix expression and return the evaluation result
public int Evaluate()
{
/* Missing code start here */
/* Missing code end here */
}
// Perform an operation on the two operands
public int Calculate(int operand1, int operand2, char operation)
{
int result = 0;
switch (operation)
{
case '+':
result = operand1 + operand2;
break;
case '-':
result = operand1 - operand2;
break;
case '/':
result = operand1 / operand2;
break;
case '*':
result = operand1 * operand2;
break;
case '%':
result = operand1 % operand2;
break;
}
return result;
}
}