I will have to disregard your requirement about one data structure per post - these are the ones that i have used the most and most programs i find require mostly one amongst these or a combination.
arrays - the most basic and provides the fastest access. vectors are the improvisation over the plain old arrays and are de-facto replacements used commonly these days. dequeue is another variation on this theme and again provides consant time / random access but optimized for fast insertions and deletions at the beginning and end.
link list - very useful to maintain a list of data that is dropped and inserted frequently but very slow to iterate / search. eg free / used lists inside memory pages
trees - a basic structure that forms the basis of more complex structures. There are many forms of this structure. Provides logn search times when the tree is kept sorted.Becomes useful for large data items like dictionaries. Binary / AVL and red-black trees are the most common.
maps and hashes - Not exactly data structures but complex fast lookup algorithms implemented using a combination of clever logic and these above data structure.
These data structure and their implementaion are avalable in the STL library in C++. Other languages also have their native implementations. Once you know these basic data structures and a few of their variatons (queue,stack,priority queues) & something about search algorithms i would say the basics would be well covered.