import java.util.ArrayDeque; import java.util.Deque; public class Infixe { 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 "/": // Création d'un nœud opérateur Node right = stack.pop(); Node left = stack.pop(); stack.push(new OperatorNode(token.equals("x") ? "*" : token, left, right)); break; default: // Création d'un nœud opérande stack.push(new OperandNode(Integer.parseInt(token))); break; } } // Le résultat final doit être le seul élément restant sur la pile if (stack.size() == 1) { Node result = stack.pop(); System.out.println("= " + result.toInfix()); } else { System.out.println("Erreur : Expression incorrecte."); } } catch (Exception e) { System.out.println("Erreur lors de l'évaluation de l'expression : " + e.getMessage()); } } }