This is a series of tutorials. We are going to:
- Dive into data structures.
- Compare between data structures.
- Look at language support for different data structures.
What is Data Structures
Data Structures (DS) tutorial provides basic and advanced concepts of Data Structure. Our Data Structure tutorial is designed for beginners and professionals.
Data Structure is a way to store and organize data so that it can be used efficiently.
Our Data Structure tutorial includes all topics of Data Structure such as Array, Pointer, Structure, Linked List, Stack, Queue, Graph, Searching, Sorting, Programs, etc.
Need of Data Structures
As applications are getting complexed and amount of data is increasing day by day, there may arrise the following problems:
- Processor speed: To handle very large amout of data, high speed processing is required, but as the data is growing day by day to the billions of files per entity, processor may fail to deal with that much amount of data.
- Data Search: Consider an inventory size of 106 items in a store, If our application needs to search for a particular item, it needs to traverse 106 items every time, results in slowing down the search process.
- Multiple requests: If thousands of users are searching the data simultaneously on a web server, then there are the chances that a very large server can be failed during that process.
in order to solve the above problems, data structures are used. Data is organized to form a data structure in such a way that all items are not required to be searched and required data can be searched instantly.
Advantages of Data Structures
Reusability : Data structures are reusable, i.e. once we have implemented a particular data structure, we can use it at any other place. Implementation of data structures can be compiled into libraries which can be used by different clients.
Abstraction: The client program uses the data structure through interface only, without getting into the implementation details.
Efficiency: Efficiency of a program depends upon the choice of data structures. For example: suppose, we have some data and we need to perform the search for a perticular record. In that case, if we organize our data in an array, we will have to search sequentially element by element. hence, using array may not be very efficient here. There are better data structures which can make the search process efficient like ordered array, binary search tree or hash tables.
In the next episode you will how to code various data structures together with simple to follow step-by-step instructions. Every data structure presented will be accompanied by some working source code (in JavaScript) to solidify your understanding.
⭐️ Course Contents ⭐️
⌨️ Abstract data types
⌨️ Introduction to Big-O
⌨️ Dynamic and Static Arrays
⌨️ Dynamic Array Code
⌨️ Linked Lists Introduction
⌨️ Doubly Linked List Code
⌨️ Stack Introduction
⌨️ Stack Implementation
⌨️ Stack Code
⌨️ Queue Introduction
⌨️ Queue Implementation
⌨️ Queue Code
⌨️ Priority Queue Introduction
⌨️ Priority Queue Min Heaps and Max Heaps
⌨️ Priority Queue Inserting Elements
⌨️ Priority Queue Removing Elements
⌨️ Priority Queue Code
⌨️ Union Find Introduction
⌨️ Union Find Kruskal's Algorithm
⌨️ Union Find - Union and Find Operations
⌨️ Union Find Path Compression
⌨️ Union Find Code
⌨️ Binary Search Tree Introduction
⌨️ Binary Search Tree Insertion
⌨️ Binary Search Tree Removal
⌨️ Binary Search Tree Traversals
⌨️ Binary Search Tree Code
⌨️ Hash table hash function
⌨️ Hash table separate chaining
⌨️ Hash table separate chaining source code
⌨️ Hash table open addressing
⌨️ Hash table linear probing
⌨️ Hash table quadratic probing
⌨️ Hash table double hashing
⌨️ Hash table open addressing removing
⌨️ Hash table open addressing code
⌨️ Fenwick Tree range queries
⌨️ Fenwick Tree point updates
⌨️ Fenwick Tree construction
⌨️ Fenwick tree source code
⌨️ Suffix Array introduction
⌨️ Longest Common Prefix (LCP) array
⌨️ Suffix array finding unique substrings
⌨️ Longest common substring problem suffix array
⌨️ Longest common substring problem suffix array
part 2
⌨️ Longest Repeated Substring suffix array
⌨️ Balanced binary search tree rotations
⌨️ AVL tree insertion
⌨️ AVL tree removals
⌨️ AVL tree source code
⌨️ Indexed Priority Queue | Data Structure
⌨️ Indexed Priority Queue | Data Structure | Source Code
Feel free to follow me on GitHub.
Discussion