# prabhas-koppireddy/striversgraphseries architecture

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

- Interactive diagram: https://gitdiagram.com/prabhas-koppireddy/striversgraphseries
- Repository: https://github.com/prabhas-koppireddy/striversgraphseries

## Overview

This repository is a collection of graph-algorithm implementations, with C++ and Java variants and separate folders for several algorithm families. The principal conceptual workflow is to apply a graph algorithm to a graph and obtain a traversal, classification, connectivity result, or path/tree result. The tree identifies the implementations but provides no README or source excerpts, so it does not establish runtime entry points, calls, or data flow; those relationships are therefore not drawn.

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_representations["Graph Representations"]
  node_cpp_adj_list["C++ Adjacency List"]
  node_cpp_adj_matrix["C++ Adjacency Matrix"]
  node_java_adj_list["Java Adjacency List"]
  node_java_adj_matrix["Java Adjacency Matrix"]
end

subgraph group_traversals["Traversal and Ordering"]
  node_bfs_cpp["BFS C++"]
  node_bfs_java["BFS Java"]
  node_bfs_graph_java["Graph BFS Java"]
  node_dfs_cpp["DFS C++"]
  node_dfs_java["DFS Java"]
  node_topo_cpp["Topological Sort C++"]
  node_topo_cpp_bfs["Topological BFS C++"]
  node_topo_java["Topological Sort Java"]
  node_topo_java_bfs["Topological BFS Java"]
end

subgraph group_properties["Graph Properties"]
  node_cycle_dg_bfs_cpp["Directed Cycle BFS C++"]
  node_cycle_dg_bfs_java["Directed Cycle BFS Java"]
  node_cycle_dg_dfs_cpp["Directed Cycle DFS C++"]
  node_cycle_dg_dfs_java["Directed Cycle DFS Java"]
  node_cycle_ug_bfs_cpp["Undirected Cycle BFS C++"]
  node_cycle_ug_bfs_java["Undirected Cycle BFS Java"]
  node_cycle_ug_dfs_cpp["Undirected Cycle DFS C++"]
  node_cycle_ug_dfs_java["Undirected Cycle DFS Java"]
end

subgraph group_connectivity["Connectivity and Coloring"]
  node_articulation_cpp["Articulation Points C++"]
  node_articulation_java["Articulation Points Java"]
  node_bridges_cpp["Bridges C++"]
  node_bridges_java["Bridges Java"]
  node_bipartite_bfs_cpp["Bipartite BFS C++"]
  node_bipartite_dfs_cpp["Bipartite DFS C++"]
  node_bipartite_bfs_java["Bipartite BFS Java"]
  node_bipartite_dfs_java["Bipartite DFS Java"]
  node_kosaraju_cpp["Kosaraju C++"]
  node_kosaraju_java["Kosaraju Java"]
  node_mcolor_cpp["M-Coloring C++"]
  node_mcolor_java["M-Coloring Java"]
end

subgraph group_optimization["Spanning Trees and Paths"]
  node_kruskal_cpp["Kruskal C++"]
end

click node_cpp_adj_list "https://github.com/prabhas-koppireddy/striversgraphseries/blob/main/C%2B%2BAdjacencyListRepresentation"
click node_cpp_adj_matrix "https://github.com/prabhas-koppireddy/striversgraphseries/blob/main/C%2B%2BAdjacencyMatrixRepresentation"
click node_java_adj_list "https://github.com/prabhas-koppireddy/striversgraphseries/blob/main/JavaAdjacenyListRepresentation"
click node_java_adj_matrix "https://github.com/prabhas-koppireddy/striversgraphseries/blob/main/JavaAdjacenyMatrixRepresentation"
click node_bfs_cpp "https://github.com/prabhas-koppireddy/striversgraphseries/blob/main/BfsCpp"
click node_bfs_java "https://github.com/prabhas-koppireddy/striversgraphseries/blob/main/BfsJava"
click node_bfs_graph_java "https://github.com/prabhas-koppireddy/striversgraphseries/blob/main/bfsGraphJava"
click node_dfs_cpp "https://github.com/prabhas-koppireddy/striversgraphseries/blob/main/DfsCpp"
click node_dfs_java "https://github.com/prabhas-koppireddy/striversgraphseries/blob/main/DfsJava"
click node_topo_cpp "https://github.com/prabhas-koppireddy/striversgraphseries/blob/main/topoSortCpp"
click node_topo_cpp_bfs "https://github.com/prabhas-koppireddy/striversgraphseries/blob/main/topoSortCppBFS"
click node_topo_java "https://github.com/prabhas-koppireddy/striversgraphseries/blob/main/topoSortJava"
click node_topo_java_bfs "https://github.com/prabhas-koppireddy/striversgraphseries/blob/main/topoSortJavaBfs"
click node_cycle_dg_bfs_cpp "https://github.com/prabhas-koppireddy/striversgraphseries/blob/main/checkCycleDGBFSCpp"
click node_cycle_dg_bfs_java "https://github.com/prabhas-koppireddy/striversgraphseries/blob/main/checkCycleDGBFSJava"
click node_cycle_dg_dfs_cpp "https://github.com/prabhas-koppireddy/striversgraphseries/blob/main/cycleCheckDGDfs"
click node_cycle_dg_dfs_java "https://github.com/prabhas-koppireddy/striversgraphseries/blob/main/cycleCheckDGDfsJava"
click node_cycle_ug_bfs_cpp "https://github.com/prabhas-koppireddy/striversgraphseries/blob/main/cycleCheckUGBfs"
click node_cycle_ug_bfs_java "https://github.com/prabhas-koppireddy/striversgraphseries/blob/main/cycleCheckUGBfsJava"
click node_cycle_ug_dfs_cpp "https://github.com/prabhas-koppireddy/striversgraphseries/blob/main/cycleCheckUGDfs"
click node_cycle_ug_dfs_java "https://github.com/prabhas-koppireddy/striversgraphseries/blob/main/cycleCheckUGDfsJava"
click node_articulation_cpp "https://github.com/prabhas-koppireddy/striversgraphseries/blob/main/articulationCpp"
click node_articulation_java "https://github.com/prabhas-koppireddy/striversgraphseries/blob/main/articulationJava"
click node_bridges_cpp "https://github.com/prabhas-koppireddy/striversgraphseries/blob/main/bridgesCpp"
click node_bridges_java "https://github.com/prabhas-koppireddy/striversgraphseries/blob/main/bridgesJava"
click node_bipartite_bfs_cpp "https://github.com/prabhas-koppireddy/striversgraphseries/blob/main/bipartiteGraphCppBfs"
click node_bipartite_dfs_cpp "https://github.com/prabhas-koppireddy/striversgraphseries/blob/main/bipartiteGraphCppDfs"
click node_bipartite_bfs_java "https://github.com/prabhas-koppireddy/striversgraphseries/blob/main/bipartiteGraphJavaBfs"
click node_bipartite_dfs_java "https://github.com/prabhas-koppireddy/striversgraphseries/blob/main/bipartiteGraphJavaDfs"
click node_kosaraju_cpp "https://github.com/prabhas-koppireddy/striversgraphseries/blob/main/kosarajuCpp"
click node_kosaraju_java "https://github.com/prabhas-koppireddy/striversgraphseries/blob/main/kosaRajuJava"
click node_mcolor_cpp "https://github.com/prabhas-koppireddy/striversgraphseries/blob/main/mcoloringgraphCpp"
click node_mcolor_java "https://github.com/prabhas-koppireddy/striversgraphseries/blob/main/mcoloringgraphJava"
click node_kruskal_cpp "https://github.com/prabhas-koppireddy/striversgraphseries/blob/main/KruskalAlgorithmCpp"

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_cpp_adj_list,node_cpp_adj_matrix,node_java_adj_list,node_java_adj_matrix toneBlue
class node_bfs_cpp,node_bfs_java,node_bfs_graph_java,node_dfs_cpp,node_dfs_java,node_topo_cpp,node_topo_cpp_bfs,node_topo_java,node_topo_java_bfs toneAmber
class node_cycle_dg_bfs_cpp,node_cycle_dg_bfs_java,node_cycle_dg_dfs_cpp,node_cycle_dg_dfs_java,node_cycle_ug_bfs_cpp,node_cycle_ug_bfs_java,node_cycle_ug_dfs_cpp,node_cycle_ug_dfs_java toneMint
class node_articulation_cpp,node_articulation_java,node_bridges_cpp,node_bridges_java,node_bipartite_bfs_cpp,node_bipartite_dfs_cpp,node_bipartite_bfs_java,node_bipartite_dfs_java,node_kosaraju_cpp,node_kosaraju_java,node_mcolor_cpp,node_mcolor_java toneRose
class node_kruskal_cpp toneIndigo
```

## Components

### Graph Representations

- [C++ Adjacency List](https://github.com/prabhas-koppireddy/striversgraphseries/blob/main/C%2B%2BAdjacencyListRepresentation): `C++AdjacencyListRepresentation`
- [C++ Adjacency Matrix](https://github.com/prabhas-koppireddy/striversgraphseries/blob/main/C%2B%2BAdjacencyMatrixRepresentation): `C++AdjacencyMatrixRepresentation`
- [Java Adjacency List](https://github.com/prabhas-koppireddy/striversgraphseries/blob/main/JavaAdjacenyListRepresentation): `JavaAdjacenyListRepresentation`
- [Java Adjacency Matrix](https://github.com/prabhas-koppireddy/striversgraphseries/blob/main/JavaAdjacenyMatrixRepresentation): `JavaAdjacenyMatrixRepresentation`

### Traversal and Ordering

- [BFS C++](https://github.com/prabhas-koppireddy/striversgraphseries/blob/main/BfsCpp): `BfsCpp`
- [BFS Java](https://github.com/prabhas-koppireddy/striversgraphseries/blob/main/BfsJava): `BfsJava`
- [Graph BFS Java](https://github.com/prabhas-koppireddy/striversgraphseries/blob/main/bfsGraphJava): `bfsGraphJava`
- [DFS C++](https://github.com/prabhas-koppireddy/striversgraphseries/blob/main/DfsCpp): `DfsCpp`
- [DFS Java](https://github.com/prabhas-koppireddy/striversgraphseries/blob/main/DfsJava): `DfsJava`
- [Topological Sort C++](https://github.com/prabhas-koppireddy/striversgraphseries/blob/main/topoSortCpp): `topoSortCpp`
- [Topological BFS C++](https://github.com/prabhas-koppireddy/striversgraphseries/blob/main/topoSortCppBFS): `topoSortCppBFS`
- [Topological Sort Java](https://github.com/prabhas-koppireddy/striversgraphseries/blob/main/topoSortJava): `topoSortJava`
- [Topological BFS Java](https://github.com/prabhas-koppireddy/striversgraphseries/blob/main/topoSortJavaBfs): `topoSortJavaBfs`

### Graph Properties

- [Directed Cycle BFS C++](https://github.com/prabhas-koppireddy/striversgraphseries/blob/main/checkCycleDGBFSCpp): `checkCycleDGBFSCpp`
- [Directed Cycle BFS Java](https://github.com/prabhas-koppireddy/striversgraphseries/blob/main/checkCycleDGBFSJava): `checkCycleDGBFSJava`
- [Directed Cycle DFS C++](https://github.com/prabhas-koppireddy/striversgraphseries/blob/main/cycleCheckDGDfs): `cycleCheckDGDfs`
- [Directed Cycle DFS Java](https://github.com/prabhas-koppireddy/striversgraphseries/blob/main/cycleCheckDGDfsJava): `cycleCheckDGDfsJava`
- [Undirected Cycle BFS C++](https://github.com/prabhas-koppireddy/striversgraphseries/blob/main/cycleCheckUGBfs): `cycleCheckUGBfs`
- [Undirected Cycle BFS Java](https://github.com/prabhas-koppireddy/striversgraphseries/blob/main/cycleCheckUGBfsJava): `cycleCheckUGBfsJava`
- [Undirected Cycle DFS C++](https://github.com/prabhas-koppireddy/striversgraphseries/blob/main/cycleCheckUGDfs): `cycleCheckUGDfs`
- [Undirected Cycle DFS Java](https://github.com/prabhas-koppireddy/striversgraphseries/blob/main/cycleCheckUGDfsJava): `cycleCheckUGDfsJava`

### Connectivity and Coloring

- [Articulation Points C++](https://github.com/prabhas-koppireddy/striversgraphseries/blob/main/articulationCpp): `articulationCpp`
- [Articulation Points Java](https://github.com/prabhas-koppireddy/striversgraphseries/blob/main/articulationJava): `articulationJava`
- [Bridges C++](https://github.com/prabhas-koppireddy/striversgraphseries/blob/main/bridgesCpp): `bridgesCpp`
- [Bridges Java](https://github.com/prabhas-koppireddy/striversgraphseries/blob/main/bridgesJava): `bridgesJava`
- [Bipartite BFS C++](https://github.com/prabhas-koppireddy/striversgraphseries/blob/main/bipartiteGraphCppBfs): `bipartiteGraphCppBfs`
- [Bipartite DFS C++](https://github.com/prabhas-koppireddy/striversgraphseries/blob/main/bipartiteGraphCppDfs): `bipartiteGraphCppDfs`
- [Bipartite BFS Java](https://github.com/prabhas-koppireddy/striversgraphseries/blob/main/bipartiteGraphJavaBfs): `bipartiteGraphJavaBfs`
- [Bipartite DFS Java](https://github.com/prabhas-koppireddy/striversgraphseries/blob/main/bipartiteGraphJavaDfs): `bipartiteGraphJavaDfs`
- [Kosaraju C++](https://github.com/prabhas-koppireddy/striversgraphseries/blob/main/kosarajuCpp): `kosarajuCpp`
- [Kosaraju Java](https://github.com/prabhas-koppireddy/striversgraphseries/blob/main/kosaRajuJava): `kosaRajuJava`
- [M-Coloring C++](https://github.com/prabhas-koppireddy/striversgraphseries/blob/main/mcoloringgraphCpp): `mcoloringgraphCpp`
- [M-Coloring Java](https://github.com/prabhas-koppireddy/striversgraphseries/blob/main/mcoloringgraphJava): `mcoloringgraphJava`

### Spanning Trees and Paths

- [Kruskal C++](https://github.com/prabhas-koppireddy/striversgraphseries/blob/main/KruskalAlgorithmCpp): `KruskalAlgorithmCpp`
