import java.util.Queue; public class Arithmetique { public static void main(String[] args) { if (args.length == 0) { System.out.println("Veuillez fournir une expression en notation polonaise inversée."); return; } // Utilisation de notre implémentation FileChainee pour la file Queue queue = new FileChainee<>(); try { for (String token : args) { switch (token) { case "+": // Addition queue.offer(queue.poll() + queue.poll()); break; case "-": // Soustraction (attention à l'ordre) int b = queue.poll(); int a = queue.poll(); queue.offer(a - b); break; case "x": // Multiplication queue.offer(queue.poll() * queue.poll()); break; case "/": // Division (attention à l'ordre) b = queue.poll(); a = queue.poll(); if (b == 0) { throw new ArithmeticException("Division par zéro"); } queue.offer(a / b); break; default: // Si ce n'est pas un opérateur, alors c'est un nombre queue.offer(Integer.parseInt(token)); break; } } // Le résultat final doit être le seul élément restant dans la file if (queue.size() == 1) { System.out.println("= " + queue.poll()); } else { System.out.println("Erreur : Expression incorrecte."); } } catch (Exception e) { System.out.println("Erreur lors de l'évaluation de l'expression : " + e.getMessage()); } } }