Despite the advancement of computer's hardware: the high speed and great performance of its processors as it can handle millions of mathematical computations in some seconds, still the way how to organize and store the data can have big impact on the performance and the speed of resolving the problems as Data can become huge and will impact considerably on the speed of the best processors available. for that purpose there were many different ways to store Data and it depends on the developer to choose the best way that can suit its type of Data.
- these are the most used Data structures:
- Pointers : very primitive data structure used with the first programming languages as C and C++, the new programming languages handle pointers implicitly behind the scenes
- Arrays : most used and most simple used data structure very convenient in case the number of data can be determined
- List Node : can hold an unknown number of data as it can easily change size to add or delete items
- Queues : commonly used for routers using the principle of FIFO First In First Out
- Stacks : the opposite of Queues using the principle of LIFO Last In First Out
- Trees : as it is name says, it is a data structure composed by nodes where the first node is considered as the root and can have zero or more children(child nodes)
- Binary Trees : the only difference with Trees Data Structure that every set of record is indexed by a key and one node can not have more than 2 nodes which explain the title "binary" with the condition that the key value of the left node is less than its parent and the right key value is greater than its parent
- Priority Queues : with a major difference with ordinary Queues ,the Priority Queues accept states, which are saved in methods as result it can easily pull out the state that has the least cost
- Hash Tables : unique data structure where every set of record has keys and every key has an associated value