# abdul-majid-khan/data-structures architecture

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

- Interactive diagram: https://gitdiagram.com/abdul-majid-khan/data-structures
- Repository: https://github.com/abdul-majid-khan/data-structures

## Overview

This is a personal Java collection of independent data-structure and algorithm practice solutions, not a single application with a shared user-to-result workflow. Each file exposes a solution for a particular problem or algorithm; the README describes the covered topics but no common runtime, shared storage, or orchestration. The graph groups solutions by their main algorithmic area. Source-index references show no imports or named links between these files, so no call or data-flow edges are supported.

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_graphs["Graph algorithms"]
  node_returning_shortest_path["Undirected shortest path"]
  node_bellman_ford["Bellman-Ford<br/>[bellmanford.java]"]
  node_dijkstra["Dijkstra"]
  node_floyd_warshall["Floyd-Warshall<br/>[floydwarshall.java]"]
  node_kosaraju["Kosaraju"]
  node_mst["Minimum spanning tree"]
  node_prim["Prim's algorithm"]
  node_lc1091["Grid shortest path<br/>[leetcode1091.java]"]
  node_lc1192["Critical connections<br/>[leetcode1192.java]"]
  node_lc1254["Enclosed land<br/>[leetcode1254.java]"]
  node_lc1334["City threshold distance<br/>[leetcode1334.java]"]
  node_lc1631["Minimum effort path<br/>[leetcode1631.java]"]
  node_lc1976["Shortest-path counts<br/>[leetcode1976.java]"]
  node_lc743["Network delay<br/>[leetcode743.java]"]
  node_lc778["Rising water<br/>[leetcode778.java]"]
  node_lc787["Bounded-flight cost<br/>[leetcode787.java]"]
  node_lc3559["Tree path queries<br/>[leetcode3559.java]"]
  node_lc3534["Path existence queries<br/>[leetcode3534.java]"]
  node_lc4085["Colored graph root<br/>[leetcode4085.java]"]
end

subgraph group_strings["String algorithms"]
  node_kmp["KMP matching<br/>[kmp.java]"]
  node_lc1520["Maximum substrings<br/>[leetcode1520.java]"]
  node_lc3886["Sortable integers<br/>[leetcode3886.java]"]
  node_lc1021["Remove outer parentheses<br/>[leetcode1021.java]"]
  node_lc1111["Parentheses split<br/>[leetcode1111.java]"]
  node_lc1541["Parentheses insertions<br/>[leetcode1541.java]"]
  node_lc22["Generate parentheses<br/>[leetcode22.java]"]
  node_lc32["Longest valid parentheses<br/>[leetcode32.java]"]
  node_lc301["Remove invalid parentheses<br/>[leetcode301.java]"]
  node_lc678["Wildcard parentheses<br/>[leetcode678.java]"]
  node_lc856["Score parentheses<br/>[leetcode856.java]"]
  node_lc921["Parentheses additions<br/>[leetcode921.java]"]
end

subgraph group_arrays["Array algorithms"]
  node_lc2916["Distinct-count squares<br/>[leetcode2916.java]"]
  node_lc3420["Nondecreasing subarrays<br/>[leetcode3420.java]"]
  node_lc3505["Window operation costs<br/>[leetcode3505.java]"]
end

subgraph group_trees["Trees and structures"]
end

subgraph group_other["Other problems"]
end

click node_returning_shortest_path "https://github.com/abdul-majid-khan/data-structures/blob/main/Returning_shortest_path_in_a_undirectedgraph.java"
click node_bellman_ford "https://github.com/abdul-majid-khan/data-structures/blob/main/bellmanford.java"
click node_dijkstra "https://github.com/abdul-majid-khan/data-structures/blob/main/dijkstra%20_algorithm.java"
click node_floyd_warshall "https://github.com/abdul-majid-khan/data-structures/blob/main/floydwarshall.java"
click node_kosaraju "https://github.com/abdul-majid-khan/data-structures/blob/main/kosaraju_algorithm.java"
click node_mst "https://github.com/abdul-majid-khan/data-structures/blob/main/minimum_spanning_tree.java"
click node_prim "https://github.com/abdul-majid-khan/data-structures/blob/main/prims_algorithm.java"
click node_lc1091 "https://github.com/abdul-majid-khan/data-structures/blob/main/leetcode1091.java"
click node_lc1192 "https://github.com/abdul-majid-khan/data-structures/blob/main/leetcode1192.java"
click node_lc1254 "https://github.com/abdul-majid-khan/data-structures/blob/main/leetcode1254.java"
click node_lc1334 "https://github.com/abdul-majid-khan/data-structures/blob/main/leetcode1334.java"
click node_lc1631 "https://github.com/abdul-majid-khan/data-structures/blob/main/leetcode1631.java"
click node_lc1976 "https://github.com/abdul-majid-khan/data-structures/blob/main/leetcode1976.java"
click node_lc743 "https://github.com/abdul-majid-khan/data-structures/blob/main/leetcode743.java"
click node_lc778 "https://github.com/abdul-majid-khan/data-structures/blob/main/leetcode778.java"
click node_lc787 "https://github.com/abdul-majid-khan/data-structures/blob/main/leetcode787.java"
click node_lc3559 "https://github.com/abdul-majid-khan/data-structures/blob/main/leetcode3559.java"
click node_lc3534 "https://github.com/abdul-majid-khan/data-structures/blob/main/leetcode3534.java"
click node_lc4085 "https://github.com/abdul-majid-khan/data-structures/blob/main/leetcode4085.java"
click node_kmp "https://github.com/abdul-majid-khan/data-structures/blob/main/kmp.java"
click node_lc1520 "https://github.com/abdul-majid-khan/data-structures/blob/main/leetcode1520.java"
click node_lc3886 "https://github.com/abdul-majid-khan/data-structures/blob/main/leetcode3886.java"
click node_lc1021 "https://github.com/abdul-majid-khan/data-structures/blob/main/leetcode1021.java"
click node_lc1111 "https://github.com/abdul-majid-khan/data-structures/blob/main/leetcode1111.java"
click node_lc1541 "https://github.com/abdul-majid-khan/data-structures/blob/main/leetcode1541.java"
click node_lc22 "https://github.com/abdul-majid-khan/data-structures/blob/main/leetcode22.java"
click node_lc32 "https://github.com/abdul-majid-khan/data-structures/blob/main/leetcode32.java"
click node_lc301 "https://github.com/abdul-majid-khan/data-structures/blob/main/leetcode301.java"
click node_lc678 "https://github.com/abdul-majid-khan/data-structures/blob/main/leetcode678.java"
click node_lc856 "https://github.com/abdul-majid-khan/data-structures/blob/main/leetcode856.java"
click node_lc921 "https://github.com/abdul-majid-khan/data-structures/blob/main/leetcode921.java"
click node_lc2916 "https://github.com/abdul-majid-khan/data-structures/blob/main/leetcode2916.java"
click node_lc3420 "https://github.com/abdul-majid-khan/data-structures/blob/main/leetcode3420.java"
click node_lc3505 "https://github.com/abdul-majid-khan/data-structures/blob/main/leetcode3505.java"

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_returning_shortest_path,node_bellman_ford,node_dijkstra,node_floyd_warshall,node_kosaraju,node_mst,node_prim,node_lc1091,node_lc1192,node_lc1254,node_lc1334,node_lc1631,node_lc1976,node_lc743,node_lc778,node_lc787,node_lc3559,node_lc3534,node_lc4085 toneBlue
class node_kmp,node_lc1520,node_lc3886,node_lc1021,node_lc1111,node_lc1541,node_lc22,node_lc32,node_lc301,node_lc678,node_lc856,node_lc921 toneAmber
class node_lc2916,node_lc3420,node_lc3505 toneMint
```

## Components

### Graph algorithms

- [Undirected shortest path](https://github.com/abdul-majid-khan/data-structures/blob/main/Returning_shortest_path_in_a_undirectedgraph.java): `Returning_shortest_path_in_a_undirectedgraph.java`
- [Bellman-Ford](https://github.com/abdul-majid-khan/data-structures/blob/main/bellmanford.java): `bellmanford.java`
- [Dijkstra](https://github.com/abdul-majid-khan/data-structures/blob/main/dijkstra%20_algorithm.java): `dijkstra _algorithm.java`
- [Floyd-Warshall](https://github.com/abdul-majid-khan/data-structures/blob/main/floydwarshall.java): `floydwarshall.java`
- [Kosaraju](https://github.com/abdul-majid-khan/data-structures/blob/main/kosaraju_algorithm.java): `kosaraju_algorithm.java`
- [Minimum spanning tree](https://github.com/abdul-majid-khan/data-structures/blob/main/minimum_spanning_tree.java): `minimum_spanning_tree.java`
- [Prim's algorithm](https://github.com/abdul-majid-khan/data-structures/blob/main/prims_algorithm.java): `prims_algorithm.java`
- [Grid shortest path](https://github.com/abdul-majid-khan/data-structures/blob/main/leetcode1091.java): `leetcode1091.java`
- [Critical connections](https://github.com/abdul-majid-khan/data-structures/blob/main/leetcode1192.java): `leetcode1192.java`
- [Enclosed land](https://github.com/abdul-majid-khan/data-structures/blob/main/leetcode1254.java): `leetcode1254.java`
- [City threshold distance](https://github.com/abdul-majid-khan/data-structures/blob/main/leetcode1334.java): `leetcode1334.java`
- [Minimum effort path](https://github.com/abdul-majid-khan/data-structures/blob/main/leetcode1631.java): `leetcode1631.java`
- [Shortest-path counts](https://github.com/abdul-majid-khan/data-structures/blob/main/leetcode1976.java): `leetcode1976.java`
- [Network delay](https://github.com/abdul-majid-khan/data-structures/blob/main/leetcode743.java): `leetcode743.java`
- [Rising water](https://github.com/abdul-majid-khan/data-structures/blob/main/leetcode778.java): `leetcode778.java`
- [Bounded-flight cost](https://github.com/abdul-majid-khan/data-structures/blob/main/leetcode787.java): `leetcode787.java`
- [Tree path queries](https://github.com/abdul-majid-khan/data-structures/blob/main/leetcode3559.java): `leetcode3559.java`
- [Path existence queries](https://github.com/abdul-majid-khan/data-structures/blob/main/leetcode3534.java): `leetcode3534.java`
- [Colored graph root](https://github.com/abdul-majid-khan/data-structures/blob/main/leetcode4085.java): `leetcode4085.java`

### String algorithms

- [KMP matching](https://github.com/abdul-majid-khan/data-structures/blob/main/kmp.java): `kmp.java`
- [Maximum substrings](https://github.com/abdul-majid-khan/data-structures/blob/main/leetcode1520.java): `leetcode1520.java`
- [Sortable integers](https://github.com/abdul-majid-khan/data-structures/blob/main/leetcode3886.java): `leetcode3886.java`
- [Remove outer parentheses](https://github.com/abdul-majid-khan/data-structures/blob/main/leetcode1021.java): `leetcode1021.java`
- [Parentheses split](https://github.com/abdul-majid-khan/data-structures/blob/main/leetcode1111.java): `leetcode1111.java`
- [Parentheses insertions](https://github.com/abdul-majid-khan/data-structures/blob/main/leetcode1541.java): `leetcode1541.java`
- [Generate parentheses](https://github.com/abdul-majid-khan/data-structures/blob/main/leetcode22.java): `leetcode22.java`
- [Longest valid parentheses](https://github.com/abdul-majid-khan/data-structures/blob/main/leetcode32.java): `leetcode32.java`
- [Remove invalid parentheses](https://github.com/abdul-majid-khan/data-structures/blob/main/leetcode301.java): `leetcode301.java`
- [Wildcard parentheses](https://github.com/abdul-majid-khan/data-structures/blob/main/leetcode678.java): `leetcode678.java`
- [Score parentheses](https://github.com/abdul-majid-khan/data-structures/blob/main/leetcode856.java): `leetcode856.java`
- [Parentheses additions](https://github.com/abdul-majid-khan/data-structures/blob/main/leetcode921.java): `leetcode921.java`

### Array algorithms

- [Distinct-count squares](https://github.com/abdul-majid-khan/data-structures/blob/main/leetcode2916.java): `leetcode2916.java`
- [Nondecreasing subarrays](https://github.com/abdul-majid-khan/data-structures/blob/main/leetcode3420.java): `leetcode3420.java`
- [Window operation costs](https://github.com/abdul-majid-khan/data-structures/blob/main/leetcode3505.java): `leetcode3505.java`
