# shiva-ganesh-varikuppala/my-dsa architecture

> Architecture diagram of the GitHub repository shiva-ganesh-varikuppala/my-dsa, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-25). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/shiva-ganesh-varikuppala/my-dsa
- Repository: https://github.com/shiva-ganesh-varikuppala/my-dsa

## Overview

This is an educational DSA reference collection, not a single application: learners choose a topic, run a standalone C++ or Python example, and inspect its output. There is no shared runtime entry point or demonstrated cross-topic call chain. The graph groups the documented topic areas; source excerpts confirm representative examples, while unsampled capabilities are included only where the tree and README support them.

Main entry points: [`LinkedLists`](https://github.com/shiva-ganesh-varikuppala/my-dsa/tree/main/LinkedLists) (Linked Lists), [`Stack`](https://github.com/shiva-ganesh-varikuppala/my-dsa/tree/main/Stack) (Stacks), [`Queues`](https://github.com/shiva-ganesh-varikuppala/my-dsa/tree/main/Queues) (Queues), [`Trees`](https://github.com/shiva-ganesh-varikuppala/my-dsa/tree/main/Trees) (Trees)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_structures["Data Structures"]
  node_linkedlists["Linked Lists"]
  node_stacks["Stacks"]
  node_queues["Queues"]
  node_trees["Trees"]
  node_graphs["Graph Representation"]
end

subgraph group_fundamentals["Core Algorithms"]
  node_arrays["Array Operations"]
  node_searching["Searching"]
  node_sorting["Sorting"]
  node_recursion["Recursion"]
end

subgraph group_advanced["Advanced Algorithms"]
  node_backtracking["Backtracking"]
  node_dynamicprogramming["Dynamic Programming"]
  node_greedy["Greedy Algorithms"]
  node_heaps["Heap Algorithms"]
end

subgraph group_patterns["Problem Patterns"]
  node_prefix["Prefix Sum"]
  node_twopointers["Two Pointers"]
end

subgraph group_strings["Strings"]
  node_strings["String Algorithms"]
end

node_learner(("Learner"))
node_console(("Program Output"))

node_learner -->|"chooses and runs"| node_arrays
node_learner -->|"chooses and runs"| node_searching
node_learner -->|"chooses and runs"| node_sorting
node_learner -->|"chooses and runs"| node_recursion
node_learner -->|"chooses and runs"| node_linkedlists
node_learner -->|"chooses and runs"| node_stacks
node_learner -->|"chooses and runs"| node_queues
node_learner -->|"chooses and runs"| node_trees
node_learner -->|"chooses and runs"| node_graphs
node_learner -->|"chooses and runs"| node_backtracking
node_learner -->|"chooses and runs"| node_dynamicprogramming
node_learner -->|"chooses and runs"| node_greedy
node_learner -->|"chooses and runs"| node_heaps
node_learner -->|"chooses and runs"| node_prefix
node_learner -->|"chooses and runs"| node_twopointers
node_learner -->|"chooses and runs"| node_strings
node_arrays -->|"prints examples"| node_console
node_searching -->|"prints examples"| node_console
node_sorting -->|"prints examples"| node_console
node_recursion -->|"prints examples"| node_console
node_linkedlists -->|"prints examples"| node_console
node_stacks -->|"prints examples"| node_console
node_queues -->|"prints examples"| node_console
node_trees -->|"prints examples"| node_console
node_graphs -->|"prints examples"| node_console
node_backtracking -->|"prints examples"| node_console
node_dynamicprogramming -->|"prints examples"| node_console
node_greedy -->|"prints examples"| node_console
node_heaps -->|"prints examples"| node_console
node_prefix -->|"prints examples"| node_console
node_twopointers -->|"prints examples"| node_console
node_strings -->|"prints examples"| node_console

click node_arrays "https://github.com/shiva-ganesh-varikuppala/my-dsa/tree/main/Arrays"
click node_searching "https://github.com/shiva-ganesh-varikuppala/my-dsa/tree/main/Searching"
click node_sorting "https://github.com/shiva-ganesh-varikuppala/my-dsa/tree/main/SORTING"
click node_recursion "https://github.com/shiva-ganesh-varikuppala/my-dsa/tree/main/Recursion"
click node_linkedlists "https://github.com/shiva-ganesh-varikuppala/my-dsa/tree/main/LinkedLists"
click node_stacks "https://github.com/shiva-ganesh-varikuppala/my-dsa/tree/main/Stack"
click node_queues "https://github.com/shiva-ganesh-varikuppala/my-dsa/tree/main/Queues"
click node_trees "https://github.com/shiva-ganesh-varikuppala/my-dsa/tree/main/Trees"
click node_graphs "https://github.com/shiva-ganesh-varikuppala/my-dsa/tree/main/Graphs"
click node_backtracking "https://github.com/shiva-ganesh-varikuppala/my-dsa/tree/main/Backtracking%20Algos"
click node_dynamicprogramming "https://github.com/shiva-ganesh-varikuppala/my-dsa/tree/main/DP_Algos"
click node_greedy "https://github.com/shiva-ganesh-varikuppala/my-dsa/tree/main/GreedyAlgos"
click node_heaps "https://github.com/shiva-ganesh-varikuppala/my-dsa/tree/main/HeapAlgos"
click node_prefix "https://github.com/shiva-ganesh-varikuppala/my-dsa/tree/main/Patterns/PrefixSum"
click node_twopointers "https://github.com/shiva-ganesh-varikuppala/my-dsa/tree/main/Patterns/TwoPointers"
click node_strings "https://github.com/shiva-ganesh-varikuppala/my-dsa/tree/main/STRINGS"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_linkedlists,node_stacks,node_queues,node_trees,node_graphs toneBlue
class node_arrays,node_searching,node_sorting,node_recursion toneAmber
class node_backtracking,node_dynamicprogramming,node_greedy,node_heaps toneMint
class node_prefix,node_twopointers toneRose
class node_strings,node_learner,node_console toneIndigo
```

## Components

### Data Structures

- [Linked Lists](https://github.com/shiva-ganesh-varikuppala/my-dsa/tree/main/LinkedLists): `LinkedLists`
- [Stacks](https://github.com/shiva-ganesh-varikuppala/my-dsa/tree/main/Stack): `Stack`
- [Queues](https://github.com/shiva-ganesh-varikuppala/my-dsa/tree/main/Queues): `Queues`
- [Trees](https://github.com/shiva-ganesh-varikuppala/my-dsa/tree/main/Trees): `Trees`
- [Graph Representation](https://github.com/shiva-ganesh-varikuppala/my-dsa/tree/main/Graphs): `Graphs`

### Core Algorithms

- [Array Operations](https://github.com/shiva-ganesh-varikuppala/my-dsa/tree/main/Arrays): `Arrays`
- [Searching](https://github.com/shiva-ganesh-varikuppala/my-dsa/tree/main/Searching): `Searching`
- [Sorting](https://github.com/shiva-ganesh-varikuppala/my-dsa/tree/main/SORTING): `SORTING`
- [Recursion](https://github.com/shiva-ganesh-varikuppala/my-dsa/tree/main/Recursion): `Recursion`

### Advanced Algorithms

- [Backtracking](https://github.com/shiva-ganesh-varikuppala/my-dsa/tree/main/Backtracking%20Algos): `Backtracking Algos`
- [Dynamic Programming](https://github.com/shiva-ganesh-varikuppala/my-dsa/tree/main/DP_Algos): `DP_Algos`
- [Greedy Algorithms](https://github.com/shiva-ganesh-varikuppala/my-dsa/tree/main/GreedyAlgos): `GreedyAlgos`
- [Heap Algorithms](https://github.com/shiva-ganesh-varikuppala/my-dsa/tree/main/HeapAlgos): `HeapAlgos`

### Problem Patterns

- [Prefix Sum](https://github.com/shiva-ganesh-varikuppala/my-dsa/tree/main/Patterns/PrefixSum): `Patterns/PrefixSum`
- [Two Pointers](https://github.com/shiva-ganesh-varikuppala/my-dsa/tree/main/Patterns/TwoPointers): `Patterns/TwoPointers`

### Strings

- [String Algorithms](https://github.com/shiva-ganesh-varikuppala/my-dsa/tree/main/STRINGS): `STRINGS`

### Other components

- **Learner**
- **Program Output**

## Connections

- Learner → Array Operations: chooses and runs
- Learner → Searching: chooses and runs
- Learner → Sorting: chooses and runs
- Learner → Recursion: chooses and runs
- Learner → Linked Lists: chooses and runs
- Learner → Stacks: chooses and runs
- Learner → Queues: chooses and runs
- Learner → Trees: chooses and runs
- Learner → Graph Representation: chooses and runs
- Learner → Backtracking: chooses and runs
- Learner → Dynamic Programming: chooses and runs
- Learner → Greedy Algorithms: chooses and runs
- Learner → Heap Algorithms: chooses and runs
- Learner → Prefix Sum: chooses and runs
- Learner → Two Pointers: chooses and runs
- Learner → String Algorithms: chooses and runs
- Array Operations → Program Output: prints examples
- Searching → Program Output: prints examples
- Sorting → Program Output: prints examples
- Recursion → Program Output: prints examples
- Linked Lists → Program Output: prints examples
- Stacks → Program Output: prints examples
- Queues → Program Output: prints examples
- Trees → Program Output: prints examples
- Graph Representation → Program Output: prints examples
- Backtracking → Program Output: prints examples
- Dynamic Programming → Program Output: prints examples
- Greedy Algorithms → Program Output: prints examples
- Heap Algorithms → Program Output: prints examples
- Prefix Sum → Program Output: prints examples
- Two Pointers → Program Output: prints examples
- String Algorithms → Program Output: prints examples
