package fr.univamu.progav.td3; import java.util.ArrayDeque; import java.util.Deque; /** * Une classe permettant d'évaluer des expressions arithmétiques entières en notation polonaise * inverse, comme <em>3 5 2 * 1 + -4 7 + + *</em>. L'évaluation d'une telle expression se fait à * l'aide d'une pile, et en lisant l'expression de gauche à droite : * <ul> * <li>3 : on empile 3, la pile est \([3]\)</li> * <li>5 : on empile 5, la pile est \([3,5]\)</li> * <li>2 : on empile 2, la pile est \([3,5,2]\)</li> * <li>* : on remplace les deux éléments supérieurs par leur produit, la pile est \([3,10]\) </li> * <li>1 : on empile 1, la pile est \([3,10,1]\)</li> * <li>+ : on remplace les deux éléments supérieurs par leur somme, la pile est \([3,11]\)</li> * <li>-4 : on empile -4, la pile est \([3,11,-4]\)</li> * <li>7 : on empile 7, la pile est \([3,11,-4,7]\)</li> * <li>+ : on remplace les deux éléments supérieurs par leur somme, la pile est \([3,11,3]\) </li> * <li>+ : on remplace les deux éléments supérieurs par leur somme, la pile est \([3,14]\)</li> * <li>* : on remplace les deux éléments supérieurs par leur produit, la pile est \([42]\) * </li> * </ul> * Un des avantages de cette notation est l'absence de parenthèses, qui sont inutiles. */ public class ExoQueue { // TODO initialisée avec une pile vide private final Deque<Integer> intStack =null; /** Insère une valeur en haut de la pile. * @param value la valeur à insérer. */ public void addValue(int value) { // TODO intStack.offerLast(value); } /** * Réalise l'addition des deux premiers éléments de la pile. */ public void performAddition() { //TODO } /** * Réalise la multiplication des deux premiers éléments de la pile. */ public void performMultiplication() { // TODO } /** * @return le nombre de valeurs dans la pile */ public int nbRemainingValues() { // TODO return 0; } /** * @return la valeur en haut de la pile (<code>null</code> si la pile est vide) */ public int topValue() { // TODO return 0; } }