---
title: "Data Structures and Algorithms"
description: "Foundational data structures and algorithms, with Java implementations and complexity analysis."
sidebar:
  hidden: true
lastModified: "2026-10-07T11:38:29+05:30"
---

Learn core data structures and algorithms through explanations, complexity analysis, and Java implementations. The source repository also includes the DSA and ADSA lecture outlines.

## Foundations

- [Introduction to Data Structures and Algorithms](/docs/en/modules/data-structures-and-algorithms/introduction)
- [Computational Complexity Analysis](/docs/en/modules/data-structures-and-algorithms/complexity-analysis)

## Data structures

### Linear structures

- [Arrays - Fundamental Data Structure](/docs/en/modules/data-structures-and-algorithms/data-structures-linear-array)
- [Linked List](/docs/en/modules/data-structures-and-algorithms/data-structures-linear-linked-list)
- [Introduction to Queues](/docs/en/modules/data-structures-and-algorithms/data-structures-linear-queue)
- [Stack - The LIFO Data Structure](/docs/en/modules/data-structures-and-algorithms/data-structures-linear-stack)

### Non-linear structures

- [Graphs (Non-Linear Data Structure)](/docs/en/modules/data-structures-and-algorithms/data-structures-non-linear-graphs)
- [Hash Tables](/docs/en/modules/data-structures-and-algorithms/data-structures-non-linear-hash-tables)
- [Heaps](/docs/en/modules/data-structures-and-algorithms/data-structures-non-linear-heap)
- [Tree Data Structures](/docs/en/modules/data-structures-and-algorithms/data-structures-non-linear-tree)
- [Red-Black Trees](/docs/en/modules/data-structures-and-algorithms/data-structures-non-linear-tree-red-black-trees)

## Algorithms

- [Algorithm Topics](/docs/en/modules/data-structures-and-algorithms/algorithms)

### Graph algorithms

- [Graph Algorithms Overview](/docs/en/modules/data-structures-and-algorithms/algorithms-graph-algorithms)
- [BFS](/docs/en/modules/data-structures-and-algorithms/algorithms-graph-algorithms-bfs)
- [DFS](/docs/en/modules/data-structures-and-algorithms/algorithms-graph-algorithms-dfs)
- [Minimum Spanning Tree (Kruskal)](/docs/en/modules/data-structures-and-algorithms/algorithms-graph-algorithms-mst)
- [Shortest Path (Dijkstra)](/docs/en/modules/data-structures-and-algorithms/algorithms-graph-algorithms-shortest-path)

### Searching

- [Linear Search](/docs/en/modules/data-structures-and-algorithms/algorithms-searching-linear-search)
- [Binary Search](/docs/en/modules/data-structures-and-algorithms/algorithms-searching-binary-search)

### Sorting

- [Sorting (Simple)](/docs/en/modules/data-structures-and-algorithms/algorithms-sorting-simple)
- [Bubble Sort](/docs/en/modules/data-structures-and-algorithms/algorithms-sorting-simple-bubble-sort)
- [Insertion Sort](/docs/en/modules/data-structures-and-algorithms/algorithms-sorting-simple-insertion-sort)
- [Selection Sort - The Minimalist Approach](/docs/en/modules/data-structures-and-algorithms/algorithms-sorting-simple-selection-sort)
- [Sorting (Advanced)](/docs/en/modules/data-structures-and-algorithms/algorithms-sorting-advanced)
- [Counting Sort](/docs/en/modules/data-structures-and-algorithms/algorithms-sorting-advanced-counting-sort)
- [Merge Sort - The Divide and Conquer Champion](/docs/en/modules/data-structures-and-algorithms/algorithms-sorting-advanced-merge-sort)
- [Quick Sort](/docs/en/modules/data-structures-and-algorithms/algorithms-sorting-advanced-quick-sort)
- [Radix Sort](/docs/en/modules/data-structures-and-algorithms/algorithms-sorting-advanced-radix-sort)
- [Shell Sort](/docs/en/modules/data-structures-and-algorithms/algorithms-sorting-advanced-shell-sort)

### Algorithmic techniques

- [Backtracking](/docs/en/modules/data-structures-and-algorithms/algorithms-backtracking)
- [Bit Manipulation](/docs/en/modules/data-structures-and-algorithms/algorithms-bit-manipulation-algorithms)
- [Branch and Bound](/docs/en/modules/data-structures-and-algorithms/algorithms-branch-and-bound)
- [Divide and Conquer](/docs/en/modules/data-structures-and-algorithms/algorithms-divide-and-conquer)
- [Dynamic Programming](/docs/en/modules/data-structures-and-algorithms/algorithms-dynamic-programming)
- [Geometric Algorithms](/docs/en/modules/data-structures-and-algorithms/algorithms-geometric-algorithms)
- [Greedy Algorithms](/docs/en/modules/data-structures-and-algorithms/algorithms-greedy-algorithms)
- [Hashing (Theory)](/docs/en/modules/data-structures-and-algorithms/algorithms-hashing)
- [Mathematical Algorithms](/docs/en/modules/data-structures-and-algorithms/algorithms-mathematical-algorithms)
- [Randomized Algorithms](/docs/en/modules/data-structures-and-algorithms/algorithms-randomized-algorithms)
- [Recursion - The Art of Self-Reference](/docs/en/modules/data-structures-and-algorithms/algorithms-recursion)
- [String Algorithms](/docs/en/modules/data-structures-and-algorithms/algorithms-string-algorithms)

## Course outlines

- [Data Structures and Algorithms Course Outline](/docs/en/modules/data-structures-and-algorithms/dsa-outline)
- [Advanced Data Structures and Algorithms Course Outline](/docs/en/modules/data-structures-and-algorithms/adsa-outline)
