logo

Type de données abstrait dans la structure de données

Avant de connaître le type de données abstrait, nous devons savoir ce qu'est une structure de données.

Qu’est-ce que la structure des données ?

Une structure de données est une technique permettant d'organiser les données afin qu'elles puissent être utilisées efficacement. Il existe deux manières de visualiser la structure des données :

    Modèles mathématiques/logiques/abstraits/vues :La structure des données est la manière d'organiser les données qui nécessite certains protocoles ou règles. Ces règles doivent être modélisées selon le modèle logique/abstrait.Mise en œuvre:La deuxième partie est la partie mise en œuvre. Les règles doivent être implémentées à l'aide d'un langage de programmation.

Pourquoi une structure de données ?

Voici les avantages de l’utilisation de la structure de données :

  • Ce sont les ingrédients essentiels utilisés pour créer des algorithmes rapides et puissants.
  • Ils nous aident à gérer et organiser les données.
  • Les structures de données rendent le code plus propre et plus facile à comprendre.

Qu’est-ce que le type de données abstrait ?

Un type de données abstrait est une abstraction d'une structure de données qui fournit uniquement l'interface à laquelle la structure de données doit adhérer. L'interface ne donne aucun détail spécifique sur quelque chose qui doit être implémenté ou dans quel langage de programmation.

En d’autres termes, nous pouvons dire que les types de données abstraits sont les entités qui sont des définitions de données et d’opérations mais qui n’ont pas de détails d’implémentation. Dans ce cas, nous connaissons les données que nous stockons et les opérations qui peuvent être effectuées sur les données, mais nous ne connaissons pas les détails de mise en œuvre. La raison pour laquelle nous ne disposons pas de détails sur l'implémentation est que chaque langage de programmation a une stratégie d'implémentation différente, par exemple ; une structure de données C est implémentée à l'aide de structures tandis qu'une structure de données C++ est implémentée à l'aide d'objets et de classes.

Par exemple, une liste est un type de données abstrait implémenté à l'aide d'un tableau dynamique et d'une liste chaînée. Une file d'attente est implémentée à l'aide d'une file d'attente basée sur une liste chaînée, d'une file d'attente basée sur un tableau et d'une file d'attente basée sur une pile. Une carte est implémentée à l'aide d'une carte arborescente, d'une carte de hachage ou d'une table de hachage.

Modèle de type de données abstrait

Avant de connaître le modèle de type de données abstrait, nous devons connaître l'abstraction et l'encapsulation.

panda fondre

Abstraction : Il s'agit d'une technique consistant à cacher les détails internes à l'utilisateur et à ne montrer que les détails nécessaires à l'utilisateur.

Encapsulation : il s'agit d'une technique consistant à combiner les données et la fonction membre en une seule unité appelée encapsulation.

Type de données abstrait dans la structure de données

La figure ci-dessus montre le modèle ADT. Il existe deux types de modèles dans le modèle ADT, à savoir la fonction publique et la fonction privée. Le modèle ADT contient également les structures de données que nous utilisons dans un programme. Dans ce modèle, la première encapsulation est effectuée, c'est-à-dire que toutes les données sont enveloppées dans une seule unité, c'est-à-dire ADT. Ensuite, l'abstraction est effectuée, ce qui signifie montrer les opérations qui peuvent être effectuées sur la structure de données et quelles sont les structures de données que nous utilisons dans un programme.

Comprenons le type de données abstrait avec un exemple concret.

Si l’on considère le smartphone. Nous examinons les spécifications élevées du smartphone, telles que :

  • 4 Go de RAM
  • Processeur Snapdragon 2,2 GHz
  • Écran LCD de 5 pouces
  • Double caméra
  • Android 8.0

Les spécifications ci-dessus du smartphone sont les données, et nous pouvons également effectuer les opérations suivantes sur le smartphone :

Déol ensoleillé
    appel():Nous pouvons appeler via le smartphone.texte():Nous pouvons envoyer un message par SMS.photo():Nous pouvons cliquer sur une photo.vidéo():Nous pouvons également réaliser une vidéo.

Le smartphone est une entité dont les données ou spécifications et opérations sont indiquées ci-dessus. La vue abstraite/logique et les opérations sont les vues abstraites ou logiques d'un smartphone.

La vue de mise en œuvre de la vue abstraite/logique ci-dessus est donnée ci-dessous :

 class Smartphone { private: int ramSize; string processorName; float screenSize; int cameraCount; string androidVersion; public: void call(); void text(); void photo(); void video(); } 

Le code ci-dessus est la mise en œuvre des spécifications et des opérations pouvant être effectuées sur le smartphone. La vue de l'implémentation peut différer car la syntaxe des langages de programmation est différente, mais la vue abstraite/logique de la structure des données resterait la même. Par conséquent, nous pouvons dire que la vue abstraite/logique est indépendante de la vue implémentation.

Remarque : Nous connaissons les opérations qui peuvent être effectuées sur les types de données prédéfinis tels que int, float, char, etc., mais nous ne connaissons pas les détails d'implémentation des types de données. Par conséquent, nous pouvons dire que le type de données abstrait est considéré comme la boîte cachée qui cache tous les détails internes du type de données.

Exemple de structure de données

Supposons que nous ayons un tableau d'index de taille 4. Nous avons un emplacement d'index commençant à 0, 1, 2, 3. Un tableau est une structure de données dans laquelle les éléments sont stockés dans un emplacement contigu. L'adresse mémoire du premier élément est 1000, du deuxième élément est 1004, du troisième élément est 1008 et du quatrième élément est 1012. Comme il est de type entier, il occupera 4 octets et la différence entre les adresses de chaque élément est 4. octets. Les valeurs stockées dans un tableau sont 10, 20, 30 et 40. Ces valeurs, positions d'index et adresses mémoire sont les implémentations.

La vue abstraite ou logique du tableau d’entiers peut être énoncée comme suit :

  • Il stocke un ensemble d'éléments de type entier.
  • Il lit les éléments par position, c'est-à-dire par index.
  • Il modifie les éléments par index
  • Il effectue le tri

La vue d'implémentation du tableau d'entiers :

 a[4] = {10, 20, 30, 40} cout<< a[2] a[3] = 50