Я написал коды для преобразования постфикса в полностью заключенный в скобки инфикс как часть моей домашней работы, но этот код может преобразовывать инфиксное выражение только с однозначными числами. Мне нужна помощь для преобразования инфиксного выражения с числами из 2 и более цифр.
//Here's my code. My class doesn't use collection in JAVA.
//Classes and Interfaces for stack, list, and tree are provided.
private static final String DIGITS = "0123456789";
public static String convertPostfixtoInfix(String toPostfix)
{
LinkedStack<String> s = new LinkedStack<>();
for(int i=0; i<toPostfix.length(); i++)
{
if(DIGITS.indexOf(toPostfix.charAt(i)) != -1)
{
s.push(toPostfix.charAt(i)+"");
}
else if(toPostfix.charAt(i) == " ");{}//do nothing for blank.
else
{
String temp = "";
temp += toPostfix.charAt(i);
String num1 = s.top();
s.pop();
String num2 = s.top();
s.pop();
s.push("(" + num2 + temp + num1 + ")");
}
}
return s.top();//top() is same as peek() method.
}
Например, с помощью этого кода
ввод: 4 5 - 9 2 1 + / *
вывод: ((4-5)*(9/(2+1)))
ввод: 40 5 - 9 20 1 + / *
вывод: (9*(2/(0+1)))