# thiennguyen62/project1_hustack architecture

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

- Interactive diagram: https://gitdiagram.com/thiennguyen62/project1_hustack
- Repository: https://github.com/thiennguyen62/project1_hustack

## Overview

This repository is a collection of independent C++ solutions for course exercises, not a single application. A user supplies each program’s problem-specific input on standard input and receives its result on standard output; there is no shared runtime or cross-solution pipeline. The map highlights documented capabilities and sampled implementations, while directory-level nodes represent unsampled exercises. Connections show only the supported standalone input/output boundary, not calls between solutions.

Main entry points: [`week 1/2.cpp`](https://github.com/thiennguyen62/project1_hustack/blob/main/week%201/2.cpp) (Array queries), [`week 1/13.cpp`](https://github.com/thiennguyen62/project1_hustack/blob/main/week%201/13.cpp) (Electricity pricing), [`week 3/1.cpp`](https://github.com/thiennguyen62/project1_hustack/blob/main/week%203/1.cpp) (BST operations), [`week 3/5.cpp`](https://github.com/thiennguyen62/project1_hustack/blob/main/week%203/5.cpp) (Linked list operations)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_basics["Basic Exercises"]
  node_week1["Week 1 exercises"]
  node_arrayqueries["Array queries<br/>[2.cpp]"]
  node_electricity["Electricity pricing<br/>[13.cpp]"]
  node_week2other["Other Week 2 exercises"]
end

subgraph group_structures["Data Structures"]
  node_week3other["Other Week 3 exercises"]
  node_bst["BST operations<br/>[1.cpp]"]
  node_linkedlist["Linked list operations<br/>[5.cpp]"]
  node_week5["Week 5 exercises"]
end

subgraph group_search["Search and Hashing"]
  node_courseassign["Course assignment<br/>[5.cpp]"]
  node_week4other["Other Week 4 exercises"]
  node_hashcode["String hash codes<br/>[1.cpp]"]
  node_stringstore["String store and search<br/>[3.cpp]"]
end

subgraph group_graphs["Graph Problems"]
  node_week6other["Other Week 6 exercises"]
  node_shortestpaths["All-pairs shortest paths<br/>[1.cpp]"]
  node_isomorphism["Graph isomorphism search<br/>[2.cpp]"]
end

subgraph group_applications["Application Problems"]
  node_week7other["Other Week 7 exercises"]
  node_banktransactions["Bank transaction queries<br/>[1.cpp]"]
  node_salesorders["Sales order queries<br/>[2.cpp]"]
end

node_user(("Problem solver"))
node_result(("Printed result"))

node_user -->|"provides input"| node_arrayqueries
node_arrayqueries -->|"prints answers"| node_result
node_user -->|"provides input"| node_electricity
node_electricity -->|"prints difference"| node_result
node_user -->|"provides input"| node_courseassign
node_courseassign -.->|"prints solution"| node_result
node_user -->|"provides commands"| node_bst
node_bst -->|"prints traversal"| node_result
node_user -->|"provides commands"| node_linkedlist
node_linkedlist -->|"prints list"| node_result
node_user -->|"provides strings"| node_hashcode
node_hashcode -->|"prints hashes"| node_result
node_user -->|"provides commands"| node_stringstore
node_stringstore -->|"prints outcomes"| node_result
node_user -->|"provides graph"| node_shortestpaths
node_shortestpaths -->|"prints distances"| node_result
node_user -->|"provides graphs"| node_isomorphism
node_isomorphism -->|"prints matches"| node_result
node_user -->|"provides records"| node_banktransactions
node_banktransactions -->|"prints query results"| node_result
node_user -->|"provides orders"| node_salesorders
node_salesorders -->|"prints query results"| node_result
node_user -.->|"runs exercise"| node_week1
node_user -.->|"runs exercise"| node_week2other
node_user -.->|"runs exercise"| node_week3other
node_user -.->|"runs exercise"| node_week4other
node_user -.->|"runs exercise"| node_week5
node_user -.->|"runs exercise"| node_week6other
node_user -.->|"runs exercise"| node_week7other

click node_week1 "https://github.com/thiennguyen62/project1_hustack/tree/main/week%201"
click node_arrayqueries "https://github.com/thiennguyen62/project1_hustack/blob/main/week%201/2.cpp"
click node_electricity "https://github.com/thiennguyen62/project1_hustack/blob/main/week%201/13.cpp"
click node_week2other "https://github.com/thiennguyen62/project1_hustack/tree/main/week%202"
click node_courseassign "https://github.com/thiennguyen62/project1_hustack/blob/main/week%202/5.cpp"
click node_week3other "https://github.com/thiennguyen62/project1_hustack/tree/main/week%203"
click node_bst "https://github.com/thiennguyen62/project1_hustack/blob/main/week%203/1.cpp"
click node_linkedlist "https://github.com/thiennguyen62/project1_hustack/blob/main/week%203/5.cpp"
click node_week4other "https://github.com/thiennguyen62/project1_hustack/tree/main/week%204"
click node_hashcode "https://github.com/thiennguyen62/project1_hustack/blob/main/week%204/1.cpp"
click node_stringstore "https://github.com/thiennguyen62/project1_hustack/blob/main/week%204/3.cpp"
click node_week5 "https://github.com/thiennguyen62/project1_hustack/tree/main/week%205"
click node_week6other "https://github.com/thiennguyen62/project1_hustack/tree/main/week%206"
click node_shortestpaths "https://github.com/thiennguyen62/project1_hustack/blob/main/week%206/1.cpp"
click node_isomorphism "https://github.com/thiennguyen62/project1_hustack/blob/main/week%206/2.cpp"
click node_week7other "https://github.com/thiennguyen62/project1_hustack/tree/main/week%207"
click node_banktransactions "https://github.com/thiennguyen62/project1_hustack/blob/main/week%207/1.cpp"
click node_salesorders "https://github.com/thiennguyen62/project1_hustack/blob/main/week%207/2.cpp"

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_week1,node_arrayqueries,node_electricity,node_week2other toneBlue
class node_week3other,node_bst,node_linkedlist,node_week5 toneAmber
class node_courseassign,node_week4other,node_hashcode,node_stringstore toneMint
class node_week6other,node_shortestpaths,node_isomorphism toneRose
class node_week7other,node_banktransactions,node_salesorders,node_user,node_result toneIndigo
```

## Components

### Basic Exercises

- [Week 1 exercises](https://github.com/thiennguyen62/project1_hustack/tree/main/week%201): `week 1`
- [Array queries](https://github.com/thiennguyen62/project1_hustack/blob/main/week%201/2.cpp): `week 1/2.cpp`
- [Electricity pricing](https://github.com/thiennguyen62/project1_hustack/blob/main/week%201/13.cpp): `week 1/13.cpp`
- [Other Week 2 exercises](https://github.com/thiennguyen62/project1_hustack/tree/main/week%202): `week 2`

### Data Structures

- [Other Week 3 exercises](https://github.com/thiennguyen62/project1_hustack/tree/main/week%203): `week 3`
- [BST operations](https://github.com/thiennguyen62/project1_hustack/blob/main/week%203/1.cpp): `week 3/1.cpp`
- [Linked list operations](https://github.com/thiennguyen62/project1_hustack/blob/main/week%203/5.cpp): `week 3/5.cpp`
- [Week 5 exercises](https://github.com/thiennguyen62/project1_hustack/tree/main/week%205): `week 5`

### Search and Hashing

- [Course assignment](https://github.com/thiennguyen62/project1_hustack/blob/main/week%202/5.cpp): `week 2/5.cpp`
- [Other Week 4 exercises](https://github.com/thiennguyen62/project1_hustack/tree/main/week%204): `week 4`
- [String hash codes](https://github.com/thiennguyen62/project1_hustack/blob/main/week%204/1.cpp): `week 4/1.cpp`
- [String store and search](https://github.com/thiennguyen62/project1_hustack/blob/main/week%204/3.cpp): `week 4/3.cpp`

### Graph Problems

- [Other Week 6 exercises](https://github.com/thiennguyen62/project1_hustack/tree/main/week%206): `week 6`
- [All-pairs shortest paths](https://github.com/thiennguyen62/project1_hustack/blob/main/week%206/1.cpp): `week 6/1.cpp`
- [Graph isomorphism search](https://github.com/thiennguyen62/project1_hustack/blob/main/week%206/2.cpp): `week 6/2.cpp`

### Application Problems

- [Other Week 7 exercises](https://github.com/thiennguyen62/project1_hustack/tree/main/week%207): `week 7`
- [Bank transaction queries](https://github.com/thiennguyen62/project1_hustack/blob/main/week%207/1.cpp): `week 7/1.cpp`
- [Sales order queries](https://github.com/thiennguyen62/project1_hustack/blob/main/week%207/2.cpp): `week 7/2.cpp`

### Other components

- **Problem solver**
- **Printed result**

## Connections

- Problem solver → Array queries: provides input (evidence: `week 1/2.cpp`)
- Array queries → Printed result: prints answers (evidence: `week 1/2.cpp`)
- Problem solver → Electricity pricing: provides input (evidence: `week 1/13.cpp`)
- Electricity pricing → Printed result: prints difference (evidence: `week 1/13.cpp`)
- Problem solver → Course assignment: provides input (evidence: `week 2/5.cpp`)
- Course assignment → Printed result: prints solution
- Problem solver → BST operations: provides commands (evidence: `week 3/1.cpp`)
- BST operations → Printed result: prints traversal (evidence: `week 3/1.cpp`)
- Problem solver → Linked list operations: provides commands (evidence: `week 3/5.cpp`)
- Linked list operations → Printed result: prints list (evidence: `week 3/5.cpp`)
- Problem solver → String hash codes: provides strings (evidence: `week 4/1.cpp`)
- String hash codes → Printed result: prints hashes (evidence: `week 4/1.cpp`)
- Problem solver → String store and search: provides commands (evidence: `week 4/3.cpp`)
- String store and search → Printed result: prints outcomes (evidence: `week 4/3.cpp`)
- Problem solver → All-pairs shortest paths: provides graph (evidence: `week 6/1.cpp`)
- All-pairs shortest paths → Printed result: prints distances (evidence: `week 6/1.cpp`)
- Problem solver → Graph isomorphism search: provides graphs (evidence: `week 6/2.cpp`)
- Graph isomorphism search → Printed result: prints matches (evidence: `week 6/2.cpp`)
- Problem solver → Bank transaction queries: provides records (evidence: `week 7/1.cpp`)
- Bank transaction queries → Printed result: prints query results (evidence: `week 7/1.cpp`)
- Problem solver → Sales order queries: provides orders (evidence: `week 7/2.cpp`)
- Sales order queries → Printed result: prints query results (evidence: `week 7/2.cpp`)
- Problem solver → Week 1 exercises: runs exercise
- Problem solver → Other Week 2 exercises: runs exercise
- Problem solver → Other Week 3 exercises: runs exercise
- Problem solver → Other Week 4 exercises: runs exercise
- Problem solver → Week 5 exercises: runs exercise
- Problem solver → Other Week 6 exercises: runs exercise
- Problem solver → Other Week 7 exercises: runs exercise
