# helan-rajpurohit/dsa architecture

> Architecture diagram of the GitHub repository helan-rajpurohit/dsa, 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/helan-rajpurohit/dsa
- Repository: https://github.com/helan-rajpurohit/dsa

## Overview

This repository is a collection of standalone C and C++ data-structure and algorithm exercises, rather than one integrated application. The typical interaction is a user entering values or choosing menu operations in a console program, which then searches, transforms, or updates an in-memory structure and prints results. The graph groups the exercises by subject and preserves the five CORE MODULES. Most examples are independent; the provided excerpts do not establish links between them, so no cross-example workflow is implied.

Main entry points: [`Lab_1/Linear_Search.c`](https://github.com/helan-rajpurohit/dsa/blob/main/Lab_1/Linear_Search.c) (Linear search), [`Lab_1/Search_Element.c`](https://github.com/helan-rajpurohit/dsa/blob/main/Lab_1/Search_Element.c) (Array search), [`Lab_2/Search_Element.c`](https://github.com/helan-rajpurohit/dsa/blob/main/Lab_2/Search_Element.c) (3D matrix search), [`Lab_2/Saddle_Points.c`](https://github.com/helan-rajpurohit/dsa/blob/main/Lab_2/Saddle_Points.c) (Saddle points)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_arrays["Array Exercises"]
  node_array_ops["Array operations"]
  node_linear_search["Linear search<br/>[Linear_Search.c]"]
  node_array_search["Array search<br/>[Search_Element.c]"]
end

subgraph group_matrices["Matrix Exercises"]
  node_matrix_ops["Matrix operations"]
  node_matrix_search["3D matrix search<br/>[Search_Element.c]"]
  node_saddle_points["Saddle points<br/>[Saddle_Points.c]"]
end

subgraph group_lists["Linked Lists"]
  node_list_basics["Singly linked lists"]
  node_student_records["Student records<br/>[Student_Details.c]"]
  node_singly_list_c["Singly list operations"]
  node_doubly_list_c["Doubly list operations"]
  node_doubly_list_cpp["Doubly list C++"]
  node_circular_singly["Circular singly list"]
  node_circular_doubly_c["Circular doubly list"]
  node_circular_doubly_cpp["Circular doubly C++"]
end

subgraph group_applications["List Applications"]
  node_playlist["Music playlist<br/>[Music_Playlist.c]"]
  node_polynomial["Polynomial evaluation"]
  node_round_robin["Round-robin scheduling<br/>[Round_Robin.c]"]
end

node_user(("Console user"))

node_user -->|"enters values"| node_linear_search
node_user -->|"enters values"| node_array_search
node_user -->|"enters values"| node_matrix_search
node_user -->|"enters matrix"| node_saddle_points
node_user -->|"chooses operations"| node_doubly_list_c
node_user -->|"chooses operations"| node_doubly_list_cpp
node_user -->|"chooses operations"| node_circular_singly
node_user -->|"chooses operations"| node_circular_doubly_c
node_user -->|"chooses operations"| node_circular_doubly_cpp
node_user -->|"chooses operations"| node_student_records

click node_array_ops "https://github.com/helan-rajpurohit/dsa/tree/main/Lab_1"
click node_linear_search "https://github.com/helan-rajpurohit/dsa/blob/main/Lab_1/Linear_Search.c"
click node_array_search "https://github.com/helan-rajpurohit/dsa/blob/main/Lab_1/Search_Element.c"
click node_matrix_ops "https://github.com/helan-rajpurohit/dsa/tree/main/Lab_2"
click node_matrix_search "https://github.com/helan-rajpurohit/dsa/blob/main/Lab_2/Search_Element.c"
click node_saddle_points "https://github.com/helan-rajpurohit/dsa/blob/main/Lab_2/Saddle_Points.c"
click node_list_basics "https://github.com/helan-rajpurohit/dsa/tree/main/Lab_3"
click node_student_records "https://github.com/helan-rajpurohit/dsa/blob/main/Lab_3/Student_Details.c"
click node_singly_list_c "https://github.com/helan-rajpurohit/dsa/blob/main/Lab_4/Singly_Linkedlist.c"
click node_doubly_list_c "https://github.com/helan-rajpurohit/dsa/blob/main/Lab_4/Doubly_Linkedlist.c"
click node_doubly_list_cpp "https://github.com/helan-rajpurohit/dsa/blob/main/Lab_4/Doubly_Linkedlist.cpp"
click node_circular_singly "https://github.com/helan-rajpurohit/dsa/blob/main/Lab_5/Singly_Circular_Linkedlist.cpp"
click node_circular_doubly_c "https://github.com/helan-rajpurohit/dsa/blob/main/Lab_5/Doubly_Circular_Linkedlist.c"
click node_circular_doubly_cpp "https://github.com/helan-rajpurohit/dsa/blob/main/Lab_5/Doubly_Circular_Linkedlist.cpp"
click node_playlist "https://github.com/helan-rajpurohit/dsa/blob/main/Lab_5/Music_Playlist.c"
click node_polynomial "https://github.com/helan-rajpurohit/dsa/blob/main/Lab_5/Polynomial_Evaluation.c"
click node_round_robin "https://github.com/helan-rajpurohit/dsa/blob/main/Lab_5/Round_Robin.c"

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_array_ops,node_linear_search,node_array_search,node_user toneBlue
class node_matrix_ops,node_matrix_search,node_saddle_points toneAmber
class node_list_basics,node_student_records,node_singly_list_c,node_doubly_list_c,node_doubly_list_cpp,node_circular_singly,node_circular_doubly_c,node_circular_doubly_cpp toneMint
class node_playlist,node_polynomial,node_round_robin toneRose
```

## Components

### Array Exercises

- [Array operations](https://github.com/helan-rajpurohit/dsa/tree/main/Lab_1): `Lab_1`
- [Linear search](https://github.com/helan-rajpurohit/dsa/blob/main/Lab_1/Linear_Search.c): `Lab_1/Linear_Search.c`
- [Array search](https://github.com/helan-rajpurohit/dsa/blob/main/Lab_1/Search_Element.c): `Lab_1/Search_Element.c`

### Matrix Exercises

- [Matrix operations](https://github.com/helan-rajpurohit/dsa/tree/main/Lab_2): `Lab_2`
- [3D matrix search](https://github.com/helan-rajpurohit/dsa/blob/main/Lab_2/Search_Element.c): `Lab_2/Search_Element.c`
- [Saddle points](https://github.com/helan-rajpurohit/dsa/blob/main/Lab_2/Saddle_Points.c): `Lab_2/Saddle_Points.c`

### Linked Lists

- [Singly linked lists](https://github.com/helan-rajpurohit/dsa/tree/main/Lab_3): `Lab_3`
- [Student records](https://github.com/helan-rajpurohit/dsa/blob/main/Lab_3/Student_Details.c): `Lab_3/Student_Details.c`
- [Singly list operations](https://github.com/helan-rajpurohit/dsa/blob/main/Lab_4/Singly_Linkedlist.c): `Lab_4/Singly_Linkedlist.c`
- [Doubly list operations](https://github.com/helan-rajpurohit/dsa/blob/main/Lab_4/Doubly_Linkedlist.c): `Lab_4/Doubly_Linkedlist.c`
- [Doubly list C++](https://github.com/helan-rajpurohit/dsa/blob/main/Lab_4/Doubly_Linkedlist.cpp): `Lab_4/Doubly_Linkedlist.cpp`
- [Circular singly list](https://github.com/helan-rajpurohit/dsa/blob/main/Lab_5/Singly_Circular_Linkedlist.cpp): `Lab_5/Singly_Circular_Linkedlist.cpp`
- [Circular doubly list](https://github.com/helan-rajpurohit/dsa/blob/main/Lab_5/Doubly_Circular_Linkedlist.c): `Lab_5/Doubly_Circular_Linkedlist.c`
- [Circular doubly C++](https://github.com/helan-rajpurohit/dsa/blob/main/Lab_5/Doubly_Circular_Linkedlist.cpp): `Lab_5/Doubly_Circular_Linkedlist.cpp`

### List Applications

- [Music playlist](https://github.com/helan-rajpurohit/dsa/blob/main/Lab_5/Music_Playlist.c): `Lab_5/Music_Playlist.c`
- [Polynomial evaluation](https://github.com/helan-rajpurohit/dsa/blob/main/Lab_5/Polynomial_Evaluation.c): `Lab_5/Polynomial_Evaluation.c`
- [Round-robin scheduling](https://github.com/helan-rajpurohit/dsa/blob/main/Lab_5/Round_Robin.c): `Lab_5/Round_Robin.c`

### Other components

- **Console user**

## Connections

- Console user → Linear search: enters values (evidence: `Lab_1/Linear_Search.c`)
- Console user → Array search: enters values (evidence: `Lab_1/Search_Element.c`)
- Console user → 3D matrix search: enters values (evidence: `Lab_2/Search_Element.c`)
- Console user → Saddle points: enters matrix (evidence: `Lab_2/Saddle_Points.c`)
- Console user → Doubly list operations: chooses operations (evidence: `Lab_4/Doubly_Linkedlist.c`)
- Console user → Doubly list C++: chooses operations (evidence: `Lab_4/Doubly_Linkedlist.cpp`)
- Console user → Circular singly list: chooses operations (evidence: `Lab_5/Singly_Circular_Linkedlist.cpp`)
- Console user → Circular doubly list: chooses operations (evidence: `Lab_5/Doubly_Circular_Linkedlist.c`)
- Console user → Circular doubly C++: chooses operations (evidence: `Lab_5/Doubly_Circular_Linkedlist.cpp`)
- Console user → Student records: chooses operations (evidence: `Lab_3/Student_Details.c`)
