# trinadhgorrela/java-dsa-solutions architecture

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

- Interactive diagram: https://gitdiagram.com/trinadhgorrela/java-dsa-solutions
- Repository: https://github.com/trinadhgorrela/java-dsa-solutions

## Overview

This repository is a pattern-organized Java DSA study guide, not an application with a shared runtime pipeline. The principal learner workflow is to recognize an algorithmic pattern, study its self-contained problem solutions, and practice applying that pattern. The README documents 26 patterns and 491 Java solutions; the supplied tree contains the Java pattern directories but no Database directory. Individual solutions do not import one another, so the graph shows the documented study workflow rather than invented calls between examples. Several pattern contents were not sampled.

Main entry points: [`Array`](https://github.com/trinadhgorrela/java-dsa-solutions/tree/main/Array) (Array), [`Math`](https://github.com/trinadhgorrela/java-dsa-solutions/tree/main/Math) (Math), [`Bit Manipulation`](https://github.com/trinadhgorrela/java-dsa-solutions/tree/main/Bit%20Manipulation) (Bit Manipulation), [`String`](https://github.com/trinadhgorrela/java-dsa-solutions/tree/main/String) (String)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_fundamentals["Core Techniques"]
  node_arrays["Array"]
  node_math["Math"]
  node_bit["Bit Manipulation"]
  node_strings["String"]
  node_prefix["Prefix Sum"]
end

subgraph group_optimization["Search And Optimization"]
  node_binarysearch["Binary Search"]
  node_dp["Dynamic Programming"]
  node_greedy["Greedy"]
  node_divide["Divide And Conquer"]
  node_windows["Sliding Window"]
  node_twopointers["Two Pointers"]
  node_game["Game Theory"]
end

subgraph group_structures["Data Structures"]
  node_structures["Structures"]
  node_hash["Hash Table"]
  node_heap["Heap"]
  node_linked["Linked List"]
  node_stack["Stack"]
  node_mono["Monotonic Stack"]
  node_intervals["Intervals"]
  node_segment["Segment Tree"]
  node_fenwick["Binary Indexed Tree"]
  node_unionfind["Union Find"]
end

subgraph group_traversal["Traversal And Modeling"]
  node_backtracking["Backtracking"]
  node_graph["Graph"]
  node_tree["Tree"]
  node_topological["Topological Sort"]
  node_matrix["Matrix"]
end

node_learner(("Learner"))

node_learner -->|"studies patterns"| node_arrays
node_learner -->|"studies patterns"| node_math
node_learner -->|"studies patterns"| node_bit
node_learner -->|"studies patterns"| node_strings
node_learner -->|"studies patterns"| node_prefix
node_learner -->|"studies patterns"| node_binarysearch
node_learner -->|"studies patterns"| node_dp
node_learner -->|"studies patterns"| node_greedy
node_learner -->|"studies patterns"| node_divide
node_learner -->|"studies patterns"| node_windows
node_learner -->|"studies patterns"| node_twopointers
node_learner -->|"studies patterns"| node_backtracking
node_learner -->|"studies patterns"| node_graph
node_learner -->|"studies patterns"| node_tree
node_learner -->|"studies patterns"| node_topological
node_learner -->|"studies patterns"| node_hash
node_learner -->|"studies patterns"| node_heap
node_learner -->|"studies patterns"| node_linked
node_learner -->|"studies patterns"| node_stack
node_learner -->|"studies patterns"| node_mono
node_learner -->|"studies patterns"| node_intervals
node_learner -->|"studies patterns"| node_segment
node_learner -->|"studies patterns"| node_fenwick
node_learner -->|"studies patterns"| node_unionfind
node_learner -->|"studies patterns"| node_matrix
node_learner -->|"studies patterns"| node_game

click node_arrays "https://github.com/trinadhgorrela/java-dsa-solutions/tree/main/Array"
click node_math "https://github.com/trinadhgorrela/java-dsa-solutions/tree/main/Math"
click node_bit "https://github.com/trinadhgorrela/java-dsa-solutions/tree/main/Bit%20Manipulation"
click node_strings "https://github.com/trinadhgorrela/java-dsa-solutions/tree/main/String"
click node_prefix "https://github.com/trinadhgorrela/java-dsa-solutions/tree/main/Prefix%20Sum"
click node_binarysearch "https://github.com/trinadhgorrela/java-dsa-solutions/tree/main/Binary%20Search"
click node_dp "https://github.com/trinadhgorrela/java-dsa-solutions/tree/main/Dynamic%20Programming"
click node_greedy "https://github.com/trinadhgorrela/java-dsa-solutions/tree/main/Greedy"
click node_divide "https://github.com/trinadhgorrela/java-dsa-solutions/tree/main/Divide%20and%20Conquer"
click node_windows "https://github.com/trinadhgorrela/java-dsa-solutions/tree/main/Sliding%20Window"
click node_twopointers "https://github.com/trinadhgorrela/java-dsa-solutions/tree/main/Two%20Pointers"
click node_backtracking "https://github.com/trinadhgorrela/java-dsa-solutions/tree/main/Backtracking"
click node_graph "https://github.com/trinadhgorrela/java-dsa-solutions/tree/main/Graph"
click node_tree "https://github.com/trinadhgorrela/java-dsa-solutions/tree/main/Tree"
click node_topological "https://github.com/trinadhgorrela/java-dsa-solutions/tree/main/Topological%20Sort"
click node_hash "https://github.com/trinadhgorrela/java-dsa-solutions/tree/main/Hash%20Table"
click node_heap "https://github.com/trinadhgorrela/java-dsa-solutions/tree/main/Heap"
click node_linked "https://github.com/trinadhgorrela/java-dsa-solutions/tree/main/Linked%20List"
click node_stack "https://github.com/trinadhgorrela/java-dsa-solutions/tree/main/Stack"
click node_mono "https://github.com/trinadhgorrela/java-dsa-solutions/tree/main/Monotonic%20Stack"
click node_intervals "https://github.com/trinadhgorrela/java-dsa-solutions/tree/main/Intervals"
click node_segment "https://github.com/trinadhgorrela/java-dsa-solutions/tree/main/Segment%20Tree"
click node_fenwick "https://github.com/trinadhgorrela/java-dsa-solutions/tree/main/Binary%20Indexed%20Tree"
click node_unionfind "https://github.com/trinadhgorrela/java-dsa-solutions/tree/main/Union%20Find"
click node_matrix "https://github.com/trinadhgorrela/java-dsa-solutions/tree/main/Matrix"
click node_game "https://github.com/trinadhgorrela/java-dsa-solutions/tree/main/Game%20Theory"

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_arrays,node_math,node_bit,node_strings,node_prefix toneBlue
class node_binarysearch,node_dp,node_greedy,node_divide,node_windows,node_twopointers,node_game toneAmber
class node_structures,node_hash,node_heap,node_linked,node_stack,node_mono,node_intervals,node_segment,node_fenwick,node_unionfind toneMint
class node_backtracking,node_graph,node_tree,node_topological,node_matrix toneRose
class node_learner toneIndigo
```

## Components

### Core Techniques

- [Array](https://github.com/trinadhgorrela/java-dsa-solutions/tree/main/Array): `Array`
- [Math](https://github.com/trinadhgorrela/java-dsa-solutions/tree/main/Math): `Math`
- [Bit Manipulation](https://github.com/trinadhgorrela/java-dsa-solutions/tree/main/Bit%20Manipulation): `Bit Manipulation`
- [String](https://github.com/trinadhgorrela/java-dsa-solutions/tree/main/String): `String`
- [Prefix Sum](https://github.com/trinadhgorrela/java-dsa-solutions/tree/main/Prefix%20Sum): `Prefix Sum`

### Search And Optimization

- [Binary Search](https://github.com/trinadhgorrela/java-dsa-solutions/tree/main/Binary%20Search): `Binary Search`
- [Dynamic Programming](https://github.com/trinadhgorrela/java-dsa-solutions/tree/main/Dynamic%20Programming): `Dynamic Programming`
- [Greedy](https://github.com/trinadhgorrela/java-dsa-solutions/tree/main/Greedy): `Greedy`
- [Divide And Conquer](https://github.com/trinadhgorrela/java-dsa-solutions/tree/main/Divide%20and%20Conquer): `Divide and Conquer`
- [Sliding Window](https://github.com/trinadhgorrela/java-dsa-solutions/tree/main/Sliding%20Window): `Sliding Window`
- [Two Pointers](https://github.com/trinadhgorrela/java-dsa-solutions/tree/main/Two%20Pointers): `Two Pointers`
- [Game Theory](https://github.com/trinadhgorrela/java-dsa-solutions/tree/main/Game%20Theory): `Game Theory`

### Data Structures

- **Structures**
- [Hash Table](https://github.com/trinadhgorrela/java-dsa-solutions/tree/main/Hash%20Table): `Hash Table`
- [Heap](https://github.com/trinadhgorrela/java-dsa-solutions/tree/main/Heap): `Heap`
- [Linked List](https://github.com/trinadhgorrela/java-dsa-solutions/tree/main/Linked%20List): `Linked List`
- [Stack](https://github.com/trinadhgorrela/java-dsa-solutions/tree/main/Stack): `Stack`
- [Monotonic Stack](https://github.com/trinadhgorrela/java-dsa-solutions/tree/main/Monotonic%20Stack): `Monotonic Stack`
- [Intervals](https://github.com/trinadhgorrela/java-dsa-solutions/tree/main/Intervals): `Intervals`
- [Segment Tree](https://github.com/trinadhgorrela/java-dsa-solutions/tree/main/Segment%20Tree): `Segment Tree`
- [Binary Indexed Tree](https://github.com/trinadhgorrela/java-dsa-solutions/tree/main/Binary%20Indexed%20Tree): `Binary Indexed Tree`
- [Union Find](https://github.com/trinadhgorrela/java-dsa-solutions/tree/main/Union%20Find): `Union Find`

### Traversal And Modeling

- [Backtracking](https://github.com/trinadhgorrela/java-dsa-solutions/tree/main/Backtracking): `Backtracking`
- [Graph](https://github.com/trinadhgorrela/java-dsa-solutions/tree/main/Graph): `Graph`
- [Tree](https://github.com/trinadhgorrela/java-dsa-solutions/tree/main/Tree): `Tree`
- [Topological Sort](https://github.com/trinadhgorrela/java-dsa-solutions/tree/main/Topological%20Sort): `Topological Sort`
- [Matrix](https://github.com/trinadhgorrela/java-dsa-solutions/tree/main/Matrix): `Matrix`

### Other components

- **Learner**

## Connections

- Learner → Array: studies patterns (evidence: `README.md`)
- Learner → Math: studies patterns (evidence: `README.md`)
- Learner → Bit Manipulation: studies patterns (evidence: `README.md`)
- Learner → String: studies patterns (evidence: `README.md`)
- Learner → Prefix Sum: studies patterns (evidence: `README.md`)
- Learner → Binary Search: studies patterns (evidence: `README.md`)
- Learner → Dynamic Programming: studies patterns (evidence: `README.md`)
- Learner → Greedy: studies patterns (evidence: `README.md`)
- Learner → Divide And Conquer: studies patterns (evidence: `README.md`)
- Learner → Sliding Window: studies patterns (evidence: `README.md`)
- Learner → Two Pointers: studies patterns (evidence: `README.md`)
- Learner → Backtracking: studies patterns (evidence: `README.md`)
- Learner → Graph: studies patterns (evidence: `README.md`)
- Learner → Tree: studies patterns (evidence: `README.md`)
- Learner → Topological Sort: studies patterns (evidence: `README.md`)
- Learner → Hash Table: studies patterns (evidence: `README.md`)
- Learner → Heap: studies patterns (evidence: `README.md`)
- Learner → Linked List: studies patterns (evidence: `README.md`)
- Learner → Stack: studies patterns (evidence: `README.md`)
- Learner → Monotonic Stack: studies patterns (evidence: `README.md`)
- Learner → Intervals: studies patterns (evidence: `README.md`)
- Learner → Segment Tree: studies patterns (evidence: `README.md`)
- Learner → Binary Indexed Tree: studies patterns (evidence: `README.md`)
- Learner → Union Find: studies patterns (evidence: `README.md`)
- Learner → Matrix: studies patterns (evidence: `README.md`)
- Learner → Game Theory: studies patterns (evidence: `README.md`)
