Exercice 1

Question 1

Voir l’implémentation fournie dans la classe OptimistSet

Question 2

Les points de linéarisation pour cette implémentation sont les suivants :

  1. add(Integer item) : Le point de linéarisation est le moment où le nouveau nœud est inséré dans la liste (pred.next = node).

  2. remove(Integer item) : Le point de linéarisation est le moment où le nœud est retiré de la liste (pred.next = curr.next).

  3. contains(Integer item) : Le point de linéarisation est le moment où la clé est comparée avec la clé du nœud courant (return curr.key == key).

Question 3

Voir l’implémentation fournie dans la classe Main