Qu'est-ce qu'une structure de données ?
Bonjour,
Dans la formation Thibault utilse le terme "Structure de données". Je voudrais comprendre précisément ce que ce terme recouvre et ne recouvre pas. J'ai compris que les listes et les tuples étaient des structures de données. Qu'est-ce que les structures de données incluent d'autre ? Qu'est-ce qui ne fait pas partie des structures de données ?
Salut Lili !
Dans le cas de Python et dans le cadre de mon utilisation de ce terme dans les formations, il s'agit d'un terme qui recouvre tous les types natifs qui permettent d'organiser des éléments (donc effectivement les listes, les tuples, mais aussi les dictionnaires ou encore les sets et des types plus avancés comme les générateurs).
On pourrait également mettre dans cette famille les chaînes de caractères qui sont des suites de caractères et qui organisent dans un ordre logique une suite de caractère.
Maintenant, dans le monde de la programmation en général, tu as d'autres types de structures de données, comme les bases de données, les piles (tu trouveras plus souvent le terme anglais 'stack'), les arbres et graphes, et d'autres.
En règle générale, tu peux accéder à un élément spécifique dans une structure de données.
Si on regarde purement d'un point de vue étymologique c'est ce que signifie le terme : "donnéeS" indique qu'il y a plusieurs éléments. Un nombre entier ne serait donc pas considéré comme une structure de donnée, car il est unique. On ne peut pas accéder à un élément individuel d'un nombre entier.
Par contre une liste de nombre entiers, oui : une liste contient plusieurs données et on peut accéder à un élément spécifique de cette structure.
Par exemple :
nombres = [1, 2, 3]
premier_nombre = nombres[0] # Retourne le nombre 1
Et le terme "structure" indique que les données sont organisées selon différentes règles. Parfois il n'y en a pas de spécifique (les sets par exemple ne garantissent pas l'ordre des données).
Les listes par contre gardent l'ordre des éléments dans lesquels tu as ajouté les données.
Ce qui ne fait PAS partie des structures de données, c'est plutôt le reste du code qui utilise ces structures. Par exemple, les fonctions, classes, modules que tu crées ne sont pas en soi des "structures de données", même si elles peuvent être liées à ces dernières (comme une classe qui représente un "noeud" dans un arbre).
J'espère que c'est plus clair pour toi :) Tu as raison de te poser ces questions, les types natifs de Python et ces parties de la formation sont la base sur laquelle tout le reste s'appuie, c'est donc bien important de comprendre de quoi on parle.
L'informatique en général, ce n'est presque que de la manipulation de données (qui finissent tous par être convertis en 0 et en 1 ^^).
Merci Thibault, ta réponse est très claire et très complète.
Inscris-toi
(c'est gratuit !)
Tu dois créer un compte pour participer aux discussions.
Créer un compte