Attending college we learned the 3 primary abstract data types were Containers (Stacks, Queues, and Tables), Dictionaries, and Priority Queues. You will find most likely an limitless plethora of possibilities to group ADTs at an advanced such as this, but this is an excellent start.
I do not really understand whenever you would select a Dictionary ADT to resolve a computational problem though. Stacks and Queues appear in the future up naturally, although not dictionaries.
The main one example I'm able to think about is really a dictionary meaning it's used by us within the real life. A dictionary keeps and purchased group of words for fast research, and what you'll get whenever you lookup a thing is: correct spelling, how you can pronounce the term, what a part of speech it's, meaning of the term, etc.
As I am beginning to know it better, the greater it appears just like a "dictionary" is a different way to think about querying a database. Whenever you write a SQL Choose statement, you are usually searching for a whenever a primary key equals a particular value (not necessarily obviously, you are able to choose on any area that is available inside a table).
Is the right way to think about a Dictionary ADT? Or perhaps is the intended use more limited than this...
Your SQL example is fairly accurate. You are hunting for a primary key (the important thing from the dictionary entry) to obtain some fields (the values) connected by using it.
Personally, i found dictionaries helpful during my game programming courses. I'd load my assets after which cache them right into a dictionary later. By doing this, I did not need to know a catalog number for any specific resource, I possibly could provide a vital that will connect with the resource.