Tableau (structure de données)

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Page d'aide sur l'homonymie Pour les articles homonymes, voir Tableau.

En informatique, un tableau (array en anglais) est une structure de données de base qui est un ensemble d'éléments (des variables ou autres entités contenant des données), auquel on a accès à travers un numéro d'index (ou indice).

Dans les langages classiques, tous les éléments d'un tableau doivent être du même type. Dans les langages de plus haut niveau (comme Python, APL, etc.), cette restriction n'existe plus.

Origine du mot[modifier | modifier le code]

Tableau, en informatique, est une traduction approximative de l'anglais array (en), dont on retrouve la racine dans le mot français arroi (cf. désarroi), vieux français arroyer, qui signifie "mettre en rang, placer, ordonner".

Une array sera donc un arrangement ordonné de données variables.

Analogie[modifier | modifier le code]

On prendra comme exemple une cohorte en rang, chaque légionnaire ayant dans son paquetage un certain nombre de sacs (ie, 1=riz, 2=blé, 3=seigle, etc…). On comprend que par seul jeu d'index, on peut obtenir facilement la valeur de grains transportée par un soldat ; par exemple pour legionnaire[3;2;1], ce que contient le paquetage du soldat de troisième rang de la deuxième colonne dans le sac de riz.

On notera que dans le langage choisi pour cette analogie, l'index démarre à 1, et non à zéro.

Performances et limites[modifier | modifier le code]

Le temps d'accès à un élément par son index est constant, quel que soit l'élément désiré. Cela s'explique par le fait que les éléments d'un tableau sont contigus dans l'espace mémoire. Avec l'index, on sait donc à combien de cases mémoire se trouve l'élément en partant du début du tableau.

Les limites d'une telle structure viennent de son avantage. Un tableau étant représenté en mémoire sous la forme de cellules contiguës, les opérations d'insertion et de suppression d'élément sont impossibles, sauf si on crée un nouveau tableau, de taille plus grande ou plus petite (selon l'opération). Il est alors nécessaire de copier tous les éléments du tableau original dans le nouveau tableau, puis de libérer l'espace mémoire alloué à l'ancien tableau. Cela fait donc beaucoup d'opérations et oblige certains langages fournissant de telles possibilités à implémenter leurs tableaux, non pas sous la forme traditionnelle (cellules adjacentes), mais en utilisant une liste chaînée, ou une combinaison des deux structures pour améliorer les performances.

Tableau à une dimension[modifier | modifier le code]

Un tableau à une dimension, composé de 7 éléments.

Avec un tableau à une dimension (aussi appelé un vecteur), un numéro d'index donne accès à un seul élément. L'image de droite géométrique est une représentation graphique d'une telle structure de données, composée de 7 éléments.

En algorithmique, un tableau se déclare comme suit :

nomdutableau [valdebut..valfin] : Tableau de type

En langage C par exemple, on accède au premier élément d'un tableau nommé tab de la manière suivante :

tab[0];

En prenant le tableau en exemple, cette instruction retournera 45. Il est important de savoir que la numérotation de l'index commence à 0.

Tableau à deux dimensions (ou plus)[modifier | modifier le code]

Un tableau à deux dimensions, composé de 25 éléments

La création d'un tableau à deux dimensions (aussi appelé matrice) permet l'accès à plus d'une valeur à partir d'un indice. Autrement dit, un numéro d'index pointe sur un autre tableau. L'image d'un peigne représente une telle structure de données.

Comme on le voit, le premier tableau est composé de pointeurs vers des tableaux. L'accès à un élément se fait donc à travers deux indices.

En langage C, l'accès au troisième élément du deuxième tableau se fait de la manière suivante :

tab[3][2];

Cette instruction retournera 58.

Il n'y a pas de limite au nombre de dimensions (mises à part leur utilité et la taille de la mémoire disponible). Ainsi, l'accès à un élément dans un tableau à n dimensions (où n est un entier naturel non nul) se fait à l'aide de n indices (un indice pour chaque dimension).

La position (ou ordre) des indices est cruciale. Dans l'exemple précédent, l'élément désigné par tab[3][2] (de valeur 58) diffère de l'élément indexé par tab[2][3] (de valeur 89).

Tableau trié[modifier | modifier le code]

Un Tableau trié est un tableau dont les éléments sont ordonnés selon une relation d'ordre total.

Tableau croisé dynamique[modifier | modifier le code]

Article détaillé : Tableau croisé dynamique.

Notes et références[modifier | modifier le code]


Voir aussi[modifier | modifier le code]

Sur les autres projets Wikimedia :

Liens externes[modifier | modifier le code]