J'essaie de remplacer une expression par une notation de préfixe. J'ai été capable de comprendre la notation postfixe et je me demandais s'il était possible d'utiliser le modèle de base de ma classe de postfix lors de la création de ma classe de préfixes. Je veux prendre une expression comme ... (6 * (24 + 81)) et avoir une sortie de: * 6 + 24 81. Est-ce possible sans tenir compte des niveaux? ... ce dont j'ai besoin une variable de suivi lorsque ma boucle entre une parenthèse de l'expression? J'ai juste du mal à imaginer comment la structure fonctionne.Création d'une expression de notation de préfixe
Voici mon code postfix:
static Stack operatorStack = new Stack();
String ConvertToPostfix(String exp) {
exp = "("+exp+")";
int i;
char token;
String output = "";
for (i = 0; i < exp.length(); i++) {
token = exp.charAt(i);
if (Character.isLetterOrDigit(token) == true)
output += token;
else if (token == '(')
operatorStack.push(token);
else if (token == ')') {
char topChar;
while ((topChar = peekAtTop()) != '(') {
output += topChar;
popAtTop();
}
operatorStack.pop();
}
else {
while (priority(token) <= priority(peekAtTop())) {
output += peekAtTop();
popAtTop();
}
operatorStack.push(token);
}
}
return output;
}