web-dev-qa-db-fra.com

Qu'est-ce que ADT? (Type de données abstrait)

J'étudie actuellement sur les types de données abstraits (ADT), mais je ne comprends pas du tout le concept. Quelqu'un peut-il m'expliquer s'il vous plaît ce que c'est réellement? Aussi, qu'est-ce que collection, sac et liste ADT? en termes simples? 

27
Tommy2014

Le type de données abstrait (ADT) est un type de données dans lequel seul le comportement est défini, mais pas la mise en œuvre. 

Le type opposé à ADT est Concrete Data Type (CDT), où il contient une implémentation de ADT. 

Exemples:
Array, List, Map, Queue, Set, Stack, Table, Tree, and Vector sont des ADT. Chacune de ces ADT comporte de nombreuses implémentations, à savoir CDT. Le conteneur est un ADT de haut niveau, surtout de ADT.

Exemple de la vraie vie:
book is Abstract (Le répertoire téléphonique est une implémentation) 

enter image description here

60
Premraj

L'article _ { type de données Abstact } Wikipedia a beaucoup à dire.

En informatique, un type de données abstrait (ADT) est un modèle mathématique pour une certaine classe de structures de données ayant un comportement similaire. ou pour certains types de données d'un ou plusieurs langages de programmation ayant une sémantique similaire. Un type de données abstrait est défini indirectement, uniquement par les opérations qui peuvent être effectuées sur celui-ci et par des contraintes mathématiques sur les effets (et éventuellement le coût) de ces opérations.

De manière légèrement plus concrète, vous pouvez prendre l'exemple de l'interface List de Java. L'interface ne définit explicitement aucun comportement car il n'y a pas de classe List concrète. L'interface définit uniquement un ensemble de méthodes que les autres classes (par exemple ArrayList et LinkedList ) doivent implémenter pour être considérées comme une List.

Un collection est un autre type de données abstrait. Dans le cas de l'interface Collection de Java, elle est encore plus abstraite que List, car 

L'interface List place des dispositions supplémentaires, autres que celles spécifiées dans l'interface Collection, sur les contrats des méthodes iterator, add, remove, equals et hashCode.

Un bag est également appelé un multiset .

En mathématiques, la notion de multiset (ou sac) est une généralisation de la notion de jeu dans laquelle les membres peuvent apparaître plusieurs fois. Par exemple, il existe un ensemble unique contenant les éléments a et b et aucun autre, mais de nombreux multisets dotés de cette propriété, tels que le multiset contenant deux copies de a et un de b ou le multiset contenant trois copies de les deux, A et B.

En Java, un sac serait une collection qui implémenterait une interface très simple. Vous devez seulement pouvoir ajouter des articles à un sac, vérifier sa taille et parcourir les articles qu'il contient. Voir Bag.Java pour un exemple d'implémentation (tiré de Sedgewick & Wayne's Algorithmes 4e édition ).

15
Bill the Lizard

Un type de données véritablement abstrait décrit les propriétés de ses instances sans engagement de représentation ni d'opérations particulières. Par exemple, le type abstrait (mathématique) Integer est un ensemble d'instances discret, illimité, ordonné linéairement. Un type concret donne une représentation spécifique pour les instances et implémente un ensemble d'opérations spécifique. 

3
Dee

ADT est un ensemble de valeurs de données et d'opérations associées précisément indépendantes de toute implémentation particulière. La force d'un ADT est que l'implémentation est cachée de l'interface utilisateur. Seule est déclarée. 

2
purushottam ROY

Le type de données abstrait est un module mathématique qui inclut des données avec diverses opérations. Les détails de la mise en œuvre sont cachés et c'est pourquoi on l'appelle abstrait. L'abstraction vous a permis d'organiser la complexité de la tâche en vous concentrant sur les propriétés logiques des données et des actions.

1
user7189947

Dans les langages de programmation, un type est constitué de quelques données et des opérations associées. Un ADT est un agrégat de données défini par l'utilisateur et les opérations sur ces données et est caractérisé par encapsulation , les données et les opérations sont représentées ou déclarées dans une liste dans une seule unité syntaxique et masquage d'informations , seules les opérations pertinentes sont visibles pour l'utilisateur de l'ADT, l'interface ADT interface , de la même manière qu'un type de données normal dans le langage de programmation. C'est une abstraction car la représentation interne des données et la mise en œuvre des opérations ne concernent pas l'utilisateur ADT.

1

Le type de données simplement abstrait n'est rien mais un ensemble d'opérations et un ensemble de données est utilisé pour stocker efficacement d'autres données dans la machine ... Il n'est pas nécessaire de faire une déclaration de type spécifique. Il suffit simplement d'implémenter ADT . 

1
Ashish Jain

Avant de définir les types de données abstraits , considérons les différents vue des types de données définis par le système. Nous savons tous que par défaut, tous Les types de données primitifs (int, float, etc.) prennent en charge des opérations de base telles que comme addition et soustraction. Le système fournit les implémentations pour les types de données primitifs. Pour les types de données définis par l'utilisateur, nous avons également besoin de définir des opérations. L'implémentation de ces opérations peut être fait lorsque nous voulons réellement les utiliser. Cela signifie en général, les types de données définis par l'utilisateur sont définis avec leurs opérations.

Pour simplifier le processus de résolution des problèmes, nous combinons les données structures avec leurs opérations et nous appelons cela "Abstract Data Type" . (ADT). 

Communément utilisé ADT'S include: liste chaînée, piles, files d'attente, arbre binaire, Dictionnaires, ensembles disjoints (Union et find), tables de hachage et de nombreux autres autres.

Les ADT se composent de deux types:

1. Déclaration de données.

2. Déclaration de fonctionnement.

1
user9131165

ADT est un ensemble d’objets et d’opérations. Dans les définitions d’un ADT, il n’ya aucune mention de la manière dont cet ensemble d’opérations est mis en œuvre. Les programmeurs qui utilisent des collections doivent seulement savoir comment instancier et accéder aux données de manière prédéterminée, sans se soucier des détails de la mise en œuvre des collections. En d'autres termes, du point de vue de l'utilisateur, une collection est une abstraction. Pour cette raison, en informatique, certaines collections sont appelées types de données abstraits (ADT). L'utilisateur n'est préoccupé que par l'apprentissage de son interface ou de l'ensemble des opérations qu'il effectue ... plus

0
Muyide Ibukun

Pour résoudre les problèmes, nous combinons la structure de données avec leurs opérations. Un ADT est composé de deux parties:

  1. Déclaration de données.
  2. Déclaration de fonctionnement.

Les ADT couramment utilisés sont les listes chaînées, les piles, les files d'attente, les files d'attente prioritaires, les arbres, etc. Lors de la définition des ADT, nous n'avons pas à nous soucier des détails d'implémentation. Ils entrent en image seulement quand on veut les utiliser.

0
cammando

Le type de données abstrait est la collection de valeurs et tout type d'opération sur ces valeurs. Par exemple, puisque String n'est pas un type de données primitif, nous pouvons l'inclure dans les types de données abstraits.

0
Huwaiza Tahir

en un mot simple: Un type de données abstrait est un ensemble de données et d'opérations qui fonctionnent sur ces données. Les opérations décrivent les données au reste du programme et permettent au reste du programme de modifier les données. Le mot «données» dans «type de données abstrait» est utilisé de manière vague. Un ADT peut être une fenêtre graphique avec toutes les opérations qui l’affectent, un fichier et des opérations de fichier, une table de taux d’assurance et les opérations correspondantes, ou autre chose. 

du code complet 2 livre 

Type de données abstrait sont comme des types de données définis par l'utilisateur sur lesquels nous pouvons exécuter des fonctions sans savoir ce qu'il y a à l'intérieur du type de données et comment les opérations sont effectuées. Comme l'information n'est pas exposée, elle est extraite. par exemple. Liste, tableau, pile, file d'attente. Sur Stack, nous pouvons exécuter des fonctions telles que Push, Pop mais nous ne sommes pas certains de la façon dont elle est mise en œuvre derrière les rideaux.

0
Ankit garg