2011-07-01 2 views
2

Au collège, nous avons appris que les trois principaux types de données abstraits étaient les conteneurs (piles, files d'attente et tables), les dictionnaires et les files d'attente prioritaires. Il y a probablement un nombre illimité de façons de grouper les ADT à un niveau élevé comme celui-ci, mais c'est un bon début.Quand choisir un dictionnaire ADT

Je ne comprends pas vraiment quand vous choisiriez un Dictionary ADT pour résoudre un problème de calcul. Les piles et les files semblent venir naturellement, mais pas les dictionnaires.

Le seul exemple auquel je peux penser est un dictionnaire dans le sens où nous l'utilisons dans le monde réel. Un dictionnaire garde et ordonne un ensemble de mots pour une recherche rapide, et ce que vous obtenez lorsque vous cherchez un mot est: orthographe correcte, comment prononcer le mot, quelle partie du discours il est, définition du mot, etc

Au fur et à mesure que je commence à mieux le comprendre, plus cela ressemble à un "dictionnaire", c'est une autre façon de penser à interroger une base de données. Lorsque vous écrivez une instruction SQL SELECT, vous êtes généralement à la recherche d'une clé primaire lorsque celle-ci est égale à une certaine valeur (pas toujours bien sûr, vous pouvez sélectionner n'importe quel champ existant dans une table).

Est-ce la bonne façon de penser à un dictionnaire ADT? Ou est l'utilisation prévue plus limitée que cela ...

Répondre

1

Votre exemple SQL est assez précis. Vous recherchez une clé primaire (la clé de l'entrée du dictionnaire) pour obtenir certains champs (les valeurs) qui lui sont associés.

J'ai personnellement trouvé les dictionnaires utiles dans mes cours de programmation de jeux. Je chargerais mes ressources et les mettrais en cache dans un dictionnaire pour une utilisation ultérieure. De cette façon, je n'avais pas besoin de connaître un numéro d'index pour une ressource spécifique, je pourrais lui donner une clé qui se rapporterait à la ressource.

Questions connexes