Programme officiel

Contenus Capacités attendues Commentaires
Listes, piles, files : structures linéaires. Dictionnaires, index et clé. Distinguer des structures par le jeu des méthodes qui les caractérisent.
Choisir une structure de données adaptée à la situation à modéliser.
Distinguer la recherche d’une valeur dans une liste et dans un dictionnaire.
On distingue les modes FIFO(first in first out) et LIFO (last in first out) des piles et des files.

    Dans une liste chaînée, chaque élément :
  • prend une place libre quelconque en mémoire.
  • connaît l’emplacement de l’élément suivant.

Dans une liste chaînée, ajouter un élément se fait en temps constant. Par contre, pour lire l’élément de rang n, la complexité est linéaire en n.

Information

Une interface est le point de communication entre la structure de données (ici la liste chaînée) et l’utilisateur (ici l’Homme).

    L’interface d’une liste chaînée propose les fonctionnalités pour utiliser la structure :
  • vérifier si la liste est vide,
  • renvoyer la taille de la liste,
  • renvoyer l’élément de rang n,
  • insérer un élément.

La programmation orientée objet est un choix d’implémentation possible. Il n’est pas unique.

class Maillon:
  """
  Crée un maillon de la liste chaînée
  """

  def __init__(self, val: int, suiv: object):
      self.valeur = val
      self.suivant = suiv
class Liste:
  """
  Crée une liste chaînée
  """

  def __init__(self):
      # selt.tete référence un Maillon
      self.tete = None
Les méthodes ajoutées à l’objet Liste implémenteront l’interface proposée.
  class Liste:
    """
    Crée une liste chaînée
    """

    def __init__(self):
        # selt.tete référence un Maillon
        self.tete = None

    def est_vide(self) -> bool:
        return self.tete is None

    def ajouter(self, val: int) -> None:
        self.tete = Maillon(val, self.tete)

Annexes

Liens

Lien vers le notebook

    Sur Capytale

Pièces jointes