import java.util.ArrayDeque; import java.util.Deque; public class Prefixe { public static void main(String[] args) { if (args.length == 0) { System.out.println("Veuillez fournir une expression en notation polonaise inversée."); return; } Deque stack = new ArrayDeque<>(); try { for (String token : args) { switch (token) { case "+": case "-": case "x": case "/": // Opérateur : créer un nœud opérateur Node right = stack.pop(); Node left = stack.pop(); stack.push(new OperatorNode(token, left, right)); break; default: // Opérande : créer un nœud valeur stack.push(new ValueNode(Integer.parseInt(token))); break; } } // L'AST final doit être le seul élément restant sur la pile if (stack.size() == 1) { Node root = stack.pop(); System.out.println("= " + root.toPrefix()); } else { System.out.println("Erreur : Expression incorrecte."); } } catch (Exception e) { System.out.println("Erreur lors de l'évaluation de l'expression : " + e.getMessage()); } } }