En informatique, une structure de données est une manière d'organiser les données pour les traiter plus facilement. Une structure de données est une mise en œuvre concrète d'un type abstrait.
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 certaine 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ée à un traitement informatique peut également faire baisser de manière significative la complexité d'une application informatique et ainsi contribuer à diminuer le taux d'erreurs.
Différentes structures de données existent pour des données différentes ou répondant à des contraintes algorithmiques différentes :
structures finies :
constantes,
variables,
enregistrements,
structures composées finies ;
structures indexées :
tableaux (sur [1..n]),
tableaux multidimensionnels (e.g. tableaux bidimensionnels: sur [1..n, 1..m]; sinon, tableaux de tableaux: sur [1..n][1..m]),
tableaux associatifs,
vecteurs ;
structures récursives :
listes,
arbres,
graphes.
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 :
les listes ;
les tableaux ou vecteurs.