Select Git revision
ModelElement.java
Forked from
LABOUREL Arnaud / Firefighter template
Source project has a limited visibility.
-
YOUSSOUF Ali moussa authoredYOUSSOUF Ali moussa authored
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
ExoQueue.java 2.13 KiB
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;
}
}