CoursNumérique et sciences informatiques · tle
Comment organiser efficacement les données dans un programme ? Les structures de données sont des façons d'organiser l'information pour la traiter au mieux. La spécialité NSI de terminale approfondit listes, piles, files et arbres.
Le cours
Une structure de données est une façon d'organiser les données en mémoire pour pouvoir les utiliser efficacement. Le choix d'une bonne structure de données est aussi important que le choix d'un bon algorithme : les deux sont étroitement liés.
Selon la manière dont on organise les données, certaines opérations deviennent faciles et rapides, d'autres plus difficiles. Par exemple, ranger des données dans une simple liste, ou au contraire dans une structure plus élaborée, change complètement l'efficacité des recherches ou des insertions. Il existe donc différentes structures de données (listes, piles, files, arbres, etc.), chacune adaptée à certains usages. Choisir la structure appropriée à un problème est une compétence essentielle du programmeur : la même donnée peut être organisée de plusieurs façons selon ce qu'on veut en faire.
Comprendre la notion de structure de données est fondamental en informatique : c'est ce qui permet de concevoir des programmes efficaces. Le lien entre structures de données et algorithmes est au cœur de la discipline. Ces notions sont approfondies dans le supérieur, en informatique, où l'étude des structures de données est un enseignement fondamental et incontournable.
Selon les opérations voulues, on choisit la structure de données la plus adaptée.
Parmi les structures de données fondamentales, les piles et les files sont deux structures simples mais très utiles, qui se distinguent par l'ordre dans lequel on ajoute et retire les éléments. Elles illustrent bien l'idée qu'une structure impose une façon d'accéder aux données.
Une pile fonctionne selon le principe « dernier arrivé, premier sorti » : on ajoute et on retire les éléments par le même bout, comme une pile d'assiettes (on prend celle du dessus). Une file fonctionne selon le principe « premier arrivé, premier sorti » : on ajoute d'un côté et on retire de l'autre, comme une file d'attente. Ces structures ont de nombreuses applications : la pile sert par exemple pour le bouton « annuler » d'un logiciel ou pour gérer les appels de fonctions ; la file sert pour gérer des tâches en attente ou des impressions.
Comprendre les piles et les files, et savoir quand les utiliser, est fondamental en informatique. Ces structures illustrent des principes d'organisation des données que l'on retrouve partout. Elles sont approfondies dans le supérieur, en algorithmique et en structures de données, où elles servent de briques de base pour de nombreux algorithmes.
Une pile d'assiettes : on retire d'abord celle posée en dernier (dernier arrivé, premier sorti).
La liste est l'une des structures de données les plus utilisées en programmation. Elle permet de stocker une collection ordonnée d'éléments, auxquels on peut accéder, que l'on peut parcourir, modifier, ajouter ou supprimer. Sa souplesse en fait un outil de travail quotidien.
Une liste range les éléments les uns après les autres, dans un ordre déterminé, chaque élément occupant une position (repérée par un indice). On peut ainsi accéder à un élément par sa position, parcourir toute la liste, ajouter ou retirer des éléments. En Python, les listes sont particulièrement puissantes et flexibles : elles peuvent contenir des éléments de types variés et changer de taille. La liste se distingue des piles et files par le fait qu'on peut accéder librement à n'importe lequel de ses éléments, et pas seulement à une extrémité.
Maîtriser les listes est essentiel en programmation, car elles servent à représenter et manipuler d'innombrables types de données. C'est une structure de base incontournable. Les listes et leurs variantes (notamment la façon dont elles sont réellement organisées en mémoire) sont approfondies dans le supérieur, en algorithmique et en structures de données.
Une liste peut stocker une suite de nombres ou de mots, que l'on parcourt.
L'arbre est une structure de données plus élaborée, qui organise les données de façon hiérarchique, en niveaux, à la manière d'un arbre généalogique inversé. Cette organisation est très puissante pour représenter des relations de hiérarchie et pour effectuer des recherches efficaces.
Dans un arbre, les données sont organisées en nœuds reliés entre eux : un nœud de départ (la racine) se ramifie en plusieurs nœuds, qui se ramifient à leur tour, jusqu'aux nœuds terminaux (les feuilles). Cette structure hiérarchique se retrouve dans de nombreux contextes : l'organisation des fichiers en dossiers et sous-dossiers, l'arborescence d'un site web, ou encore la représentation de décisions successives. Certains arbres, conçus pour la recherche, permettent de retrouver une information très rapidement en descendant de branche en branche.
Comprendre les arbres est fondamental, car cette structure est omniprésente en informatique et permet des traitements très efficaces. Les arbres illustrent la puissance des structures de données hiérarchiques. Ils sont largement approfondis dans le supérieur, en algorithmique et en structures de données, où de nombreux types d'arbres et leurs applications sont étudiés en détail.
L'arborescence des dossiers d'un ordinateur est une structure en arbre.
Une même donnée peut être organisée de plusieurs façons. La liste range les éléments les uns après les autres. La pile fonctionne en « dernier arrivé, premier sorti » (LIFO) : on retire toujours le dernier ajouté. La file fonctionne à l'inverse, en « premier arrivé, premier sorti » (FIFO).
Choisir la bonne structure selon le problème rend les programmes plus simples et plus efficaces.
L'arbre est une structure hiérarchique : à partir d'une racine, des branches mènent à des nœuds, jusqu'aux feuilles. On le retrouve dans l'arborescence des fichiers d'un ordinateur ou dans les arbres de recherche.
Les arbres permettent d'organiser et de retrouver l'information très efficacement, ce qui en fait une structure fondamentale de l'informatique.
Pourquoi la fonction « annuler » (Ctrl+Z) utilise-t-elle une pile ?
Piles, files et arbres sont omniprésents : historique de navigation, files d'impression, moteurs de recherche, systèmes de fichiers. Bien choisir sa structure de données est l'une des compétences clés du programmeur : c'est souvent ce qui distingue un programme lent d'un programme rapide et élégant.
Ce qu'il faut absolument retenir
Vérifie ta compréhension
Exercice 1Qu'est-ce qu'une structure de données ?
Une structure de données est une façon d'organiser et de stocker des données pour les manipuler efficacement.
Exercice 2Comment fonctionne une pile ?
Une pile fonctionne en « dernier arrivé, premier sorti » (comme une pile d'assiettes).
Exercice 3Comment fonctionne une file ?
Une file fonctionne en « premier arrivé, premier sorti » (comme une file d'attente).
Exercice 4Un arbre est une structure de données hiérarchique (une racine qui se ramifie).
Vrai : l'arbre est une structure hiérarchique, adaptée aux données organisées en hiérarchie (comme l'arborescence de fichiers).
Exercice 5Explique la différence entre une pile et une file, avec un exemple de chacune.
Une pile fonctionne en « dernier arrivé, premier sorti » : on retire toujours le dernier élément ajouté, comme dans une pile d'assiettes où l'on prend celle du dessus. Une file fonctionne en « premier arrivé, premier sorti » : on retire le premier élément ajouté, comme dans une file d'attente où le premier arrivé est servi en premier. Ces deux structures organisent différemment l'ordre de traitement des données.
L'essentiel en images