Skip to content
Snippets Groups Projects
Select Git revision
  • d6f0f60e3127f95eaceb32d425fe72e032dd2b4d
  • master default protected
2 results

ShapeWriter.java

Blame
  • Forked from COUETOUX Basile / graphic-2020
    Source project has a limited visibility.
    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;
      }
    
    }