# charleslizz/cpp-dsa-learning architecture

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

- Interactive diagram: https://gitdiagram.com/charleslizz/cpp-dsa-learning
- Repository: https://github.com/charleslizz/cpp-dsa-learning

## Overview

This repository is a C/C++ learning course made up of standalone C examples, not a single application runtime. The documented learner journey moves from language fundamentals toward data structures, algorithms, and integrated practice; the tree currently contains examples through pointers. Chapter ordering and later roadmap topics are based on the README, while implementation details are limited to the sampled source.

Main entry points: [`01-char-string-and-ASCII/test.c`](https://github.com/charleslizz/cpp-dsa-learning/blob/master/01-char-string-and-ASCII/test.c) (Characters and ASCII), [`02-dataType/test.c`](https://github.com/charleslizz/cpp-dsa-learning/blob/master/02-dataType/test.c) (Data Types), [`03-constant-type-conversion/test.c`](https://github.com/charleslizz/cpp-dsa-learning/blob/master/03-constant-type-conversion/test.c) (Constants and Conversion), [`04-printf-scanf/test.c`](https://github.com/charleslizz/cpp-dsa-learning/blob/master/04-printf-scanf/test.c) (Formatted I/O)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_fundamentals["C Fundamentals"]
  node_characters["Characters and ASCII<br/>[test.c]"]
  node_types["Data Types<br/>[test.c]"]
  node_constants["Constants and Conversion<br/>[test.c]"]
  node_io["Formatted I/O<br/>[test.c]"]
  node_operators["Operators<br/>[test.c]"]
  node_conditionals["Conditionals<br/>[test.c]"]
  node_switch["Switch Statements<br/>[test.c]"]
  node_loops["Loops<br/>[test.c]"]
  node_arrays["Arrays<br/>[test.c]"]
end

subgraph group_programming["Programming Concepts"]
  node_functions["Functions<br/>[main.c]"]
  node_static["Static Storage<br/>[main.c]"]
  node_recursion["Recursion<br/>[main.c]"]
  node_pointers["Pointers<br/>[main.c]"]
end

subgraph group_roadmap["Learning Roadmap"]
  node_strings["String Functions"]
  node_records["Structs, Unions, Enums"]
  node_memory["Dynamic Memory"]
  node_files["File Operations"]
  node_sequential_list["Sequential Lists"]
  node_linked_list["Linked Lists"]
  node_algorithms["Algorithms"]
  node_practice["PTA Practice"]
end

node_learner(("Learner"))

node_learner -->|"studies"| node_characters
node_characters -->|"continues to"| node_types
node_types -->|"continues to"| node_constants
node_constants -->|"continues to"| node_io
node_io -->|"continues to"| node_operators
node_operators -->|"continues to"| node_conditionals
node_conditionals -->|"continues to"| node_switch
node_switch -->|"continues to"| node_loops
node_loops -->|"continues to"| node_arrays
node_arrays -->|"continues to"| node_functions
node_functions -->|"continues to"| node_static
node_static -->|"continues to"| node_recursion
node_recursion -->|"continues to"| node_pointers
node_pointers -.->|"roadmap continues"| node_strings
node_strings -.->|"roadmap continues"| node_records
node_records -.->|"roadmap continues"| node_memory
node_memory -.->|"roadmap continues"| node_files
node_files -.->|"roadmap continues"| node_sequential_list
node_sequential_list -.->|"roadmap continues"| node_linked_list
node_linked_list -.->|"learning route"| node_algorithms
node_algorithms -.->|"applies through"| node_practice

click node_characters "https://github.com/charleslizz/cpp-dsa-learning/blob/master/01-char-string-and-ASCII/test.c"
click node_types "https://github.com/charleslizz/cpp-dsa-learning/blob/master/02-dataType/test.c"
click node_constants "https://github.com/charleslizz/cpp-dsa-learning/blob/master/03-constant-type-conversion/test.c"
click node_io "https://github.com/charleslizz/cpp-dsa-learning/blob/master/04-printf-scanf/test.c"
click node_operators "https://github.com/charleslizz/cpp-dsa-learning/blob/master/05-operator/test.c"
click node_conditionals "https://github.com/charleslizz/cpp-dsa-learning/blob/master/06-sequential-and-if/test.c"
click node_switch "https://github.com/charleslizz/cpp-dsa-learning/blob/master/07-switch/test.c"
click node_loops "https://github.com/charleslizz/cpp-dsa-learning/blob/master/08-loop/test.c"
click node_arrays "https://github.com/charleslizz/cpp-dsa-learning/blob/master/09-array/test.c"
click node_functions "https://github.com/charleslizz/cpp-dsa-learning/blob/master/10-function/main.c"
click node_static "https://github.com/charleslizz/cpp-dsa-learning/blob/master/11-static/main.c"
click node_recursion "https://github.com/charleslizz/cpp-dsa-learning/blob/master/12-recursion/main.c"
click node_pointers "https://github.com/charleslizz/cpp-dsa-learning/blob/master/13-pointer/main.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_characters,node_types,node_constants,node_io,node_operators,node_conditionals,node_switch,node_loops,node_arrays toneBlue
class node_functions,node_static,node_recursion,node_pointers toneAmber
class node_strings,node_records,node_memory,node_files,node_sequential_list,node_linked_list,node_algorithms,node_practice toneMint
class node_learner toneIndigo
```

## Components

### C Fundamentals

- [Characters and ASCII](https://github.com/charleslizz/cpp-dsa-learning/blob/master/01-char-string-and-ASCII/test.c): `01-char-string-and-ASCII/test.c`
- [Data Types](https://github.com/charleslizz/cpp-dsa-learning/blob/master/02-dataType/test.c): `02-dataType/test.c`
- [Constants and Conversion](https://github.com/charleslizz/cpp-dsa-learning/blob/master/03-constant-type-conversion/test.c): `03-constant-type-conversion/test.c`
- [Formatted I/O](https://github.com/charleslizz/cpp-dsa-learning/blob/master/04-printf-scanf/test.c): `04-printf-scanf/test.c`
- [Operators](https://github.com/charleslizz/cpp-dsa-learning/blob/master/05-operator/test.c): `05-operator/test.c`
- [Conditionals](https://github.com/charleslizz/cpp-dsa-learning/blob/master/06-sequential-and-if/test.c): `06-sequential-and-if/test.c`
- [Switch Statements](https://github.com/charleslizz/cpp-dsa-learning/blob/master/07-switch/test.c): `07-switch/test.c`
- [Loops](https://github.com/charleslizz/cpp-dsa-learning/blob/master/08-loop/test.c): `08-loop/test.c`
- [Arrays](https://github.com/charleslizz/cpp-dsa-learning/blob/master/09-array/test.c): `09-array/test.c`

### Programming Concepts

- [Functions](https://github.com/charleslizz/cpp-dsa-learning/blob/master/10-function/main.c): `10-function/main.c`
- [Static Storage](https://github.com/charleslizz/cpp-dsa-learning/blob/master/11-static/main.c): `11-static/main.c`
- [Recursion](https://github.com/charleslizz/cpp-dsa-learning/blob/master/12-recursion/main.c): `12-recursion/main.c`
- [Pointers](https://github.com/charleslizz/cpp-dsa-learning/blob/master/13-pointer/main.c): `13-pointer/main.c`

### Learning Roadmap

- **String Functions**
- **Structs, Unions, Enums**
- **Dynamic Memory**
- **File Operations**
- **Sequential Lists**
- **Linked Lists**
- **Algorithms**
- **PTA Practice**

### Other components

- **Learner**

## Connections

- Learner → Characters and ASCII: studies
- Characters and ASCII → Data Types: continues to
- Data Types → Constants and Conversion: continues to
- Constants and Conversion → Formatted I/O: continues to
- Formatted I/O → Operators: continues to
- Operators → Conditionals: continues to
- Conditionals → Switch Statements: continues to
- Switch Statements → Loops: continues to
- Loops → Arrays: continues to
- Arrays → Functions: continues to
- Functions → Static Storage: continues to
- Static Storage → Recursion: continues to
- Recursion → Pointers: continues to
- Pointers → String Functions: roadmap continues
- String Functions → Structs, Unions, Enums: roadmap continues
- Structs, Unions, Enums → Dynamic Memory: roadmap continues
- Dynamic Memory → File Operations: roadmap continues
- File Operations → Sequential Lists: roadmap continues
- Sequential Lists → Linked Lists: roadmap continues
- Linked Lists → Algorithms: learning route
- Algorithms → PTA Practice: applies through
