Key Points to keep in mind
- Before introducing data structures we should understand that computers do store, retrieve, and process a large amount of data.
- If the data is stored in a well-organized way on storage media and in the computer's memory then it can be accessed quickly for processing that further reduces the latency and the user is provided a fast response.
- Data structure introduction refers to a scheme for organizing data, or in other words, a data structure is an arrangement of data in a computer's memory in such a way that it could make the data quickly available to the processor for required calculations.
- A data structure should be seen as a logical concept that must address two fundamental concerns.
- First, how the data will be stored, and second, what operations will be performed on it?
- As data structure is a scheme for data organization so the functional definition of a data structure should be independent of its implementation.
- The functional definition of a data structure is known as ADT (Abstract Data Type) which is independent of implementation.
- The implementation part is left on developers who decide which technology better suits their project needs.
- For example, a stack ADT is a structure that supports operations such as push and pop. A stack can be implemented in a number of ways, for example using an array or using a linked list.
- Along with data structures introduction, in real life, problem-solving is done with help of data structures and algorithms.
- An algorithm is a step-by-step process to solve a problem. In programming, algorithms are implemented in form of methods or functions, or routines.
- To get a problem solved we not only want an algorithm but also an efficient algorithm.
- One criterion of efficiency is the time taken by the algorithm, another could be the memory it takes at run time.
- Sometimes, we can have more than one algorithm for the same problem to process a data structure, and we have to choose the best one among available algorithms. This is done by algorithm analysis. The best algorithm is the one that has a fine balance between the time taken and memory consumption.
- But, as we know the best exists rarely, and we generally give more priority to the time taken by the algorithm rather than the memory it consumes.
- Also, as memory is getting cheaper and computers have more memory today than in previous time, therefore, run time analysis becomes more significant than memory.
- The analysis of algorithms is an entirely separate topic and we will discuss that separately.
Introduction to Basic Data Structures and Algorithms |
Classification of Data Structures |
Arrays |
Linked List |
Stack |
Queue |
Tree |
Heap |
Dictionary |
Hash Table |
Graph |
AVL Tree |
Complexity |