Stack ADT et Stack Data Structure sont-ils la même chose?


Meilleure réponse

De Type de données abstrait:

Dans informatique , un type de données abstrait ( ADT ) est un modèle mathématique pour types de données où un type de données est défini par son comportement ( sémantique ) du point de vue dun utilisateur des données, notamment en termes de valeurs possibles, dopérations possibles sur des données de ce type, et du comportement de ces opérations. Cela contraste avec les structures de données , qui sont des représentations concrètes de données et sont le point de vue dun réalisateur, pas dun utilisateur.

À partir de Structure de données :

En informatique , un la structure de données est une manière particulière dorganiser les données dans un ordinateur afin quelles puissent être utilisées efficacement .

Les structures de données peuvent implémenter un ou plusieurs types de données abstraits particuliers (ADT), qui sont le moyen de spécifier le contrat dopérations et leur complexité

Une structure de données est une implémentation concrète du contrat fourni par un ADT

Ce que cela signifie est:

1. ADT est une représentation abstraite , du point de vue de lutilisateur

2. DS est une représentation concrète , pas du point de vue de lutilisateur

En termes simples:

1. Stack is ADT , il spécifie seulement quil doit y avoir un push, pop, etc. que lutilisateur doit utiliser.

2. Stack (comme dautres ADT comme Queue) est implémenté en utilisant DS comme tableau ou liste (liste liée, etc.)

Résumé:

Stack nest pas DS, il est ADT et est implémenté à laide de autre DS.

Jespère que cela vous a aidé.

Bonne chance

Réponse

Piles

Une pile est un conteneur dobjets qui sont insérés et supprimés selon le principe du dernier entré, premier sorti (LIFO). Dans les piles déroulantes, seules deux opérations sont autorisées: pousser lélément dans la pile et pop larticle hors de la pile. Une pile est une structure de données à accès limité – les éléments peuvent être ajoutés et supprimés de la pile uniquement en haut. push ajoute un élément en haut de la pile, pop supprime lélément du haut . Une analogie utile est de penser à une pile de livres; vous pouvez supprimer uniquement le livre du haut, vous pouvez également ajouter un nouveau livre sur le dessus.

Une pile est une structure de données récursive . Voici une définition structurelle dune pile:

Applications

  • Lapplication la plus simple dune pile est dinverser un mot. Vous poussez un mot donné à empiler – lettre par lettre – puis faites sortir les lettres de la pile.
  • Une autre application est un mécanisme « dannulation » dans les éditeurs de texte; cette opération est accomplie en conservant toutes les modifications de texte dans une pile. Retour en arrière . Il sagit dun processus lorsque vous devez accéder à lélément de données le plus récent dune série déléments. Pensez à un labyrinthe ou à un labyrinthe – comment trouver un chemin entre une entrée et une sortie? Une fois que vous avez atteint une impasse, vous devez revenir en arrière. Mais revenir à où? au point de choix précédent. Par conséquent, à chaque point de choix, vous stockez sur une pile tous les choix possibles. Ensuite, revenir en arrière signifie simplement extraire un choix suivant de la pile.
  • Traitement du langage: lespace pour les paramètres et les variables locales est créé en interne à laide dun contrôle de syntaxe de stack.compiler pour les accolades correspondantes est implémenté en utilisant stack.support pour la récursivité

Implémentation

Dans la bibliothèque standard de classes, la pile de types de données est un adapter , ce qui signifie qu’une pile est construite au-dessus d’autres structures de données. La structure sous-jacente d’une pile peut être un tableau, un vecteur, un ArrayList, un liste liée ou toute autre collection. Quel que soit le type de structure de données sous-jacente, une pile doit implémenter la même fonctionnalité.Ceci est réalisé en fournissant une interface unique:

public interface StackInterface

{

public void push(AnyType e);

public AnyType pop();

public AnyType peek();

public boolean isEmpty();

}

Le Limage suivante montre lidée de mise en œuvre par composition .

Une autre exigence dimplémentation (en plus de linterface ci-dessus) est que toutes les opérations de pile doivent sexécuter en

temps constant O (1)

. Le temps constant signifie quil existe une constante k telle quune opération prend k nanosecondes de temps de calcul quelle que soit la taille de la pile.

Implémentation basée sur les tableaux

Dans une implémentation basée sur un tableau, nous maintenons les champs suivants: un tableau A dune taille par défaut (≥ 1 ), la variable top qui fait référence à lélément supérieur de la pile et la capacité qui fait référence à la taille du tableau. La variable top passe de -1 à capacity - 1. On dit quune pile est vide quand top = -1, et que la pile est pleine quand top = capacity-1.

Dans un -size abstraction de la pile, la capacité reste inchangée, donc lorsque top atteint capacité , la pile objet lève une exception.

Dans une abstraction de pile dynamique lorsque top atteint capacité , nous doublons la taille de la pile.

Implémentation basée sur une liste liée

Basé sur une liste liée implémentation fournit la meilleure implémentation de pile dynamique (du point de vue de lefficacité).

Source – Piles et files dattente

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *