Algorithms and Data Structures go hand in hand. Each algorithm works on its own data-structure at most efficiency.
Each data structure is built up of these data-types which can be categorized as following, based upon the storage:
Data Structures also differ based upon the way you can access them:
Based upon these every programming language has their own implementation of data structures. Some loosely types languages give you the freedom to create your own data structures as well.
When deciding a data structure for your task, one should keep few pointers about values in mind: