article

En informatique, une structure de données est une structure logique destinée à contenir des données, afin de leur donner une organisation permettant de simplifier leur traitement. Une structure de données implémente concrètement un type abstrait.

Pourquoi organiser les données?


Pour prendre un exemple de la vie quotidienne, on peut présenter des numéros de téléphone par département, par nom, par profession (comme les Pages jaunes), par numéro téléphonique (comme les annuaires destinés au télémarketing), par rue et/ou une combinaison quelconque de ces classements. À chaque usage correspondra une structure d'annuaire appropriée.

En organisant d'une certaines manière les données, on permet un traitement automatique de ces dernières plus efficace et rapide.

Le fait d'utiliser une structure de données approprié à un traitement peut également faire baisser de manière significative la complexité d'une application et ainsi participer à faire baisser le taux d'erreurs.

Types de collections


Collections séquentielles

Une collection séquentielle permet de ranger des objets dans un ordre arbitraire.

On parle de collection indexée quand on peut accéder à chaque élément de la collection par un numéro d'ordre (l'index). Le choix d'une implémentation particulière dépend d'un certain nombre de compromis, comme l'occupation mémoire ou les performances requises pour diverses opérations de base : itération, ajout d'un élément (au début, à la fin ou encore dans un emplacement quelconque de la collection), indexation, suppression d'un élément, décompte du nombre d'éléments, etc.

Il existe deux grands types de collections séquentielles :

Un certain nombre de structures de données sont des restrictions de collections séquentielles, qui n'autorisent qu'un sous ensemble des opérations de base :

Files à priorités

Le type abstrait file à priorités est une collection d'éléments indexés par des clés sur lesquels ont peut effectuer deux opérations: l'insertion d'un élément et l'extraction de l'élément de plus grande clé.

  • Tas ou tas binaire
On peut implémenter une union sur les files à priorité:

Tables de symboles ou collections mappées

Ce type de collection nommé dictionnaire ou map permet de ranger des objets en fonction d'une clef dans une table de symboles. La clef doit généralement respecter un certain nombre d'invariants pour être valide (valeur de hachage ou résultats de la comparaison par exemple).

Autres collections

Collections et typage


Les collections posent des problèmes de typage des données stockés. Comment garantir le type d'un objet qui est stocké dans une liste par exemple?

Ce problème n'est pas rédhibitoire dans les langages à typage dynamique, où le type exact de l'objet peut être vérifié à l'execution par introspection. Il est plus gênant dans les langages à typage statique puisqu'il oblige le programmeur, soit à devoir coder une classe container spécialisée pour chaque type de donnée à traiter, soit à violer la sûreté de typage en utilisant des coercions.

Cette difficulté a conduit de nombreux langages à supporter la programmation générique pour définir des types paramétrés. Par exemple en C++, la commande std::list<str::string> définit une liste doublement chaînée pouvant contenir des chaines de caractères.

Liens internes


Lien externe


Algorithmique

Estructura de datos | Struktura podataka | Datastruktur | Datenstruktur | Data structure | Estructura de datos | Tietorakenne | מבנה נתונים | Adatszerkezet | Struktur data | Gagnagrind | データ構造 | 자료구조 | Datastructuur | Datastruktur | Struktura danych | Estrutura de dados | Структуры данных | Údajová štruktúra | Podatkovna struktura | Datastruktur | โครงสร้างข้อมูล | Структури даних | 数据结构

 

This article is licensed under the GNU Free Documentation License. It uses material from the "Structure de données".

Home Pageartsbusinesscomputersgameshealthhospitalshomekids & teensnewsphysiciansrecreationreferenceregionalscienceshoppingsocietysportsworld