Notebook associé — Structures de données II
Ouvrez le cours interactif au format Jupyter (.ipynb) pour exécuter le code pas à pas.
Télécharger le .ipynb Voir la version HTML

1. Pourquoi utiliser la POO pour les structures de données ?

Une structure de données n’est pas seulement un ensemble d’éléments, c’est aussi un comportement défini par les opérations que l’on peut effectuer dessus. En programmation orientée objet, on décrit ce comportement à l’aide d’une interface (ensemble des méthodes disponibles) et on propose une implémentation.

Dans la partie précédente, nous avons implémenté des structures de façon fonctionnelle : des fonctions indépendantes manipulaient une liste pour ajouter, retirer ou tester des éléments. Ici, nous découvrons une autre façon d’implémenter les mêmes structures : la programmation orientée objet.

Ce qui lie les deux approches, c’est qu’elles réalisent exactement le même comportement : la pile permet toujours d’empiler, dépiler, et vérifier si elle est vide. La différence réside seulement dans la manière d’organiser le code :

L’originalité de la POO est donc de rassembler dans une même entité les données et les méthodes qui agissent sur elles, ce qui rend le code plus lisible, plus proche des objets du monde réel, et plus facile à réutiliser.

2. Problème de départ

Comment représenter une pile (structure LIFO) ? On veut pouvoir :

En POO, on définit une classe avec ces méthodes, puis on écrit une implémentation (par exemple en utilisant une liste Python).