Mission 11: QCM

Mission 11. Structures chaînées

Ces questions supposent que vous avez lu les sections suivantes du livre de référence JavaNotes

Plusieurs questions se basent sur la classe StackOfInt de la section 9.3.1, partiellement reproduite et traduite ici

/**
 * Une pile d'entiers sous forme de chaîne simplement liée.
 * Le sommet de la pile est la tête de la chaîne.
 */
public class StackOfInts {
   /**
    * Un noeud de la liste.
    */
   private static class Node {
      int item;     // donnée
      Node next;    // le noeud suivant
   }

   private Node top;   // le sommet de la pile

   /**
    * @pre  -
    * @post Ajoute N au sommet de la pile.
    */
   public void push( int N ) {
      ...
   }


   /**
    * @pre  -
    * @post Retire et retourne l'élément au sommet de la pile.
    *       Lance une IllegalStateException si la pile est vide.
    */
   public int pop() {
      ...
   }

   /**
    * @pre  -
    * @post retourne true si la pile est vide, false sinon.
    */
   public boolean isEmpty() {
      return (top == null);
   }

}

Question 1: Classes internes

On considère la classe Node définie dans StackOfInts. Parmi les groupes d'affirmations suivants, lequel est correct?

Question 2: Ajouter un noeud dans une chaîne

Dans la classe StackOfInts, quelle serait une définition correcte de la méthode push ?

Question 3: Elements d'une structure chaînée

Dans une méthode de la classe StackOfInts, on exécute le code suivant

StackOfInts stack = new StackOfInts();
stack.push(10);
stack.push(20);
stack.push(30);
/***/

Parmi les groupes d'affirmation suivantes, lequel est correct au point /***/ ?

Question 4: Parcours de structure chaînée

Dans la classe StackOfInts, quelle serait une implémentation correcte d'une méthode sum qui calcule la somme des éléments sur la pile ?

Question 5: Manipulation de structures chaînées

Dans la classe StackOfInts, quel serait une définition correcte d'une méthode swap qui échange les deux noeuds au sommet de la pile ?

Question 6: Structures de données à base de listes

Parmi les groupes d'affirmations suivants, lequel est correct ?

Question 7: Pile : utilisation

Que fait la méthode suivante

public static void m(StackOfInt stack) {
    int a = stack.pop();
    int b = stack.pop();
    stack.push(a+b);
}

Information

Author(s) Olivier BONAVENTURE
Deadline No deadline
Submission limit No limitation

Sign in