Repository files navigation Data Structures and Algorithms (DSA) Syllabus
1. Introduction to DSA (done)
Importance of Data Structures and Algorithms (done)
Time and Space Complexity Analysis (Asymptotic Notations, Big-O) (done)
Types of Algorithmic Paradigms
Divide and Conquer
Greedy Algorithms
Dynamic Programming
Backtracking
Branch and Bound
2. Linear Data Structures
Definition and Types of Arrays (1D, 2D, Multi-dimensional)
Array Operations: Insertion, Deletion, Access, Update
Dynamic Arrays (ArrayList in Java, Vectors in C++)
2.2 Strings (need to revise!)
Definition and Basics of String
String Operations: Concatenation, Substring, Length, Search, Comparison
String Algorithms: String Reversal, Palindrome, Anagram Detection, Character Frequency Count, String Matching
Singly Linked List: Insertion, Deletion, Traversal
Doubly Linked List: Insertion, Deletion, Traversal
Circular Linked List
Applications of Linked Lists (Queue Implementation, Polynomial Representation)
Definition and Operations: Push, Pop, Peek
Stack Implementation: STL(Standard Template Library)/Collection Framework, Array-based, Linked List-based
Applications (Expression Evaluation, Balancing Parentheses, Recursion)
2.5 Queues (in progress...)
Definition and Operations: Enqueue, Dequeue, Front, Rear
Types of Queues: Simple Queue, Circular Queue, Double Ended Queue (Deque)
Applications (Scheduling, Resource Management)
3. Non-Linear Data Structures
Binary Tree : Structure, Operations (Insertion, Deletion, Traversal)
Binary Search Tree (BST) : Insertion, Deletion, Search
Balanced Trees : AVL Tree, Red-Black Tree
Heap Trees : Min-Heap, Max-Heap, Heap Operations (Insert, Delete)
Tree Traversals : Pre-order, In-order, Post-order, Level-order
Applications (Expression Trees, Decision Trees, Priority Queues)
Graph Representation : Adjacency Matrix, Adjacency List
Graph Traversals : Depth-First Search (DFS), Breadth-First Search (BFS)
Shortest Path Algorithms : Dijkstra’s, Bellman-Ford, Floyd-Warshall
Minimum Spanning Tree : Prim’s, Kruskal’s Algorithms
Topological Sort and Cycle Detection
Applications (Network Routing, Social Networks, GPS Navigation)
3.3 Hash-based Data Structures
Hashing : Hash Functions, Collision Resolution
Hash Table : Chaining, Open Addressing (Linear Probing, Quadratic Probing, Double Hashing)
Applications (Dictionary, Database Indexing)
4. Advanced Data Structures
Structure and Operations (Insert, Search, Delete)
Applications (Autocomplete, IP Routing, Dictionary)
Structure and Operations
Range Queries and Updates
Applications (Range Sum Queries, Range Minimum Queries)
4.3 Fenwick Tree (Binary Indexed Tree)
Structure and Operations
Applications (Prefix Sum Queries)
4.4 Disjoint Set Union (Union-Find)
Operations: Union, Find
Applications (Network Connectivity, Kruskal’s Algorithm)
Basic Sorting : Bubble Sort, Selection Sort, Insertion Sort
Efficient Sorting : Merge Sort, Quick Sort, Heap Sort
Linear Sorting : Radix Sort, Counting Sort, Bucket Sort
Applications (Sorting Large Data, External Sorting)
Linear Search
Binary Search
Interpolation Search
Exponential Search
Applications (Finding Elements in Sorted Arrays)
DFS (Depth-First Search)
BFS (Breadth-First Search)
Dijkstra’s Algorithm for Shortest Path
Bellman-Ford Algorithm
Floyd-Warshall Algorithm for All-Pairs Shortest Paths
Prim’s Algorithm and Kruskal’s Algorithm for Minimum Spanning Tree
Knapsack Problem (0/1 Knapsack, Fractional Knapsack)
Longest Common Subsequence (LCS)
Longest Increasing Subsequence (LIS)
Matrix Chain Multiplication
Fibonacci Series (Recursive, Iterative, DP)
Applications (Optimal Substructure, Overlapping Subproblems)
Activity Selection
Huffman Encoding
Fractional Knapsack
Job Sequencing with Deadlines
Applications (Optimal Solutions with Local Choices)
N-Queens Problem
Sudoku Solver
Subset Sum Problem
Hamiltonian Path and Cycle
Graph Coloring
Applications (Puzzles, Optimized Search Problems)
Merge Sort
Quick Sort
Strassen’s Matrix Multiplication
Applications (Divide Large Problems into Simpler Subproblems)
Basic Bitwise Operations (AND, OR, XOR, NOT, Left/Right Shift)
Applications (Checking Odd/Even, Counting Set Bits, Bit Masking)
5.9 Sliding Window Technique
Fixed Size Window : Max/Min Sum, Subarray Problems
Variable Size Window : Longest Substring Problems
5.10 Two Pointer Technique
Pair Problems (Find Pair with Given Sum, Triplet Sum)
Sorted Array Problems (Find Specific Elements)
6. Applications of Data Structures and Algorithms
File Systems
Databases
Network Routing Algorithms
Operating Systems (Memory Management, Process Scheduling)
Compilers (Syntax Tree, Parsing)
Web Crawling
Machine Learning (Data Preprocessing, Decision Trees)
7. I'm Preparing from (recommended):
YouTube Channel :
Online Platforms :
GeeksforGeeks
Javatpoint
LeetCode
About
This repository is dedicated to my learning journey of Data Structure and Algorithm with Java
Topics
Resources
Stars
Watchers
Forks
You can’t perform that action at this time.