Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

174 Commits
 
 
 
 
 
 
 
 
 
 

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

2.1 Arrays (done)

  • 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

2.3 Linked Lists (done)

  • Singly Linked List: Insertion, Deletion, Traversal
  • Doubly Linked List: Insertion, Deletion, Traversal
  • Circular Linked List
  • Applications of Linked Lists (Queue Implementation, Polynomial Representation)

2.4 Stacks (done)

  • 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

3.1 Trees

  • 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)

3.2 Graphs

  • 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

4.1 Trie (Prefix Tree)

  • Structure and Operations (Insert, Search, Delete)
  • Applications (Autocomplete, IP Routing, Dictionary)

4.2 Segment Tree

  • 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)

5. Algorithms

5.1 Sorting Algorithms

  • 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)

5.2 Searching Algorithms

  • Linear Search
  • Binary Search
  • Interpolation Search
  • Exponential Search
  • Applications (Finding Elements in Sorted Arrays)

5.3 Graph Algorithms

  • 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

5.4 Dynamic Programming

  • 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)

5.5 Greedy Algorithms

  • Activity Selection
  • Huffman Encoding
  • Fractional Knapsack
  • Job Sequencing with Deadlines
  • Applications (Optimal Solutions with Local Choices)

5.6 Backtracking

  • N-Queens Problem
  • Sudoku Solver
  • Subset Sum Problem
  • Hamiltonian Path and Cycle
  • Graph Coloring
  • Applications (Puzzles, Optimized Search Problems)

5.7 Divide and Conquer

  • Merge Sort
  • Quick Sort
  • Strassen’s Matrix Multiplication
  • Applications (Divide Large Problems into Simpler Subproblems)

5.8 Bit Manipulation

  • 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):

About

This repository is dedicated to my learning journey of Data Structure and Algorithm with Java

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages