Introduction aux structures des données

Introduction aux structures des données

·

4 min read

Table of contents

No heading

No headings in the article.

Pour construire un algorithme il est indispensable de stocker des données dans la mémoire, nous avons souvent utilisé des tableaux, des listes et autres, Mais ce qui est à savoir sont les bonnes manières des stocker ces données afin de pouvoir rendre certains des actions sur ces données (comme la recherche) plus rapide en temps et moins consommable en mémoire, d’où les structures des données, qui feras le sujet de notre article. Maintenant qu’est-ce qu’une structure de données ? Les structures des données est en programmation ce qui vous permet de mieux stocker et architecture vos données dans la mémoire.

Types de structure des données

Il existe 2 grand types de structure des données:

  • Les Structures des données Linéaire: où les données sont stocké d’une manière linéaire cet a dire l’une après l’autre (par exemple les listes).
  • Les Structures des données Non–linéaire: Les donnée sont stocké en Trees (un peu comme un arbre avec des branches) Nous verrons ça plus bas.

Les Structures des données Linéaire

Comme nous l’avons dit plus haut, les structure des données linéaire sont celle où les données sont stocker l’une après l’autre comme sur la figure ci–dessous : image.png Voici quelques Structures des données linéaires :

La liste

La liste est comparable à un tableau mais la différence entre le deux est qu’un tableau possède une longueur statique définit a sont implémentation, par contre une liste a une longueur qui varie en fonction du nombre des données qu’elle contient. D’où chaque fois que vous ajoutez une nouvelle donnée dans la liste, ce qui ce passe est que l’on crée un nouveau tableau avec la longueur de l’ancien tableau plus un avant de faire la copie des anciennes donnée plus la nouvelle donnée. Ce qui rend l’algorithme d’ajout d’une valeur dans une liste plus lente et gourmande en espace mémoire dans le cas où on utilise une liste contenant plusieurs données. 💡 Sauf si vous fournissez une longueur en paramètre a la liste lors de son initialisation.Nous verrons plus en détail comment calculer la complexité d’un algorithme grâce au Big O

La LinkedList

La linkedList est une collection composé par différents objets dans la mémoire dont chaque objet contient la référence (le chemin) vers l’objet suivant stocké dans la mémoire. Il existe 2 sortes de LinkedList :

LinkedList Singly

Est celle où chaque objet contient une valeur personnalisé et la référence vers l’objet suivant come dans la figure ci–dessous : image.png

LinkedList Doubly

Ici non seulement chaque objet possède la référence vers l’objet suivant mais il possède la référence vers l’objet précèdent comme suite : image.png 💡 L’avantage d’utiliser une LinkedList Doubly est qu’on peut facilement récupérer l’objet suivant come l’objet précèdent, ce qui rend l’algorithme plus efficace.

Stack

La Stack est une structure des données où la sortie des valeurs se fait de la manière LIFO (Last In First out) qui veut dire que le dernier élément entré sera le première à sortir, nous pouvons le comparer à un tas de livre où le dernier livre qui a été mis au-dessus du tas sera le premier a êtres enlever, voici une illustration pour mieux comprendre. image.png

Queue

La Queue est la structure des données ayant 2 méthodes de sortie LIFO come pour la Stack et FIFO (First In First Out) qui veut dire que le premier élément Entré sera la première à sortir comme dans la figure suivante. image.png 💡 Nous pouvons l’utiliser pour crée une liste d’attente

Hash Table

Le Hash Table est comme on l’appelle en programmation un Dictionnaire qui est une collection d’objets Clé/Valeur ça veut dire que chaque élément du dictionnaire est composer d’une valeur Clé et une autre donnée qui contient la valeur.

Les Structures des données Non–Linéaire

Les structures des données non–Linéaire sont des Trees (Arbre) ça veut dire que les données sont stocké sous forme des branches un peu comme un arbre généalogique ou comme dans le cas des bases de données relationnelle.

image.png

Comme vous pouvez le constater chaque nœud possède la référence vers 2 objets celle de gauche et celle de droite. L’avantage d’utiliser ces types des structures est qu’elle vous permet d’effectuer des recherches des données plus rapidement, de bien structure des données plus complexe et bien beaucoup d’autres avantages.

Et parmi ces structures des données on peut citer:

  • Binary Trees
  • AVL Trees
  • Heaps
  • Tries
  • Graphs

Voici nous venons de voir les 2 types des structures des donnée que nous avons (Linéaire et Non–Linéaire). Et maintenant je vous invite à lire l’article sur le calcule de complexité d’un algorithme pour savoir dans quel cas il faut utiliser une structure des données X.