# naron2705/datastructure_tni architecture

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

## Overview

This repository is a collection of Java data-structures and algorithms lab exercises, rather than one integrated application. The typical workflow is to run a console exercise, operate on a structure or dataset, and display or search the result. The tree identifies additional list, stack, queue, tree, sorting, and searching exercises beyond the sampled sources; their internal wiring is not assumed where source evidence is unavailable.

Main entry points: [`LabSheet12/src`](https://github.com/naron2705/datastructure_tni/tree/main/LabSheet12/src) (Search demos), [`LabSheet02/src`](https://github.com/naron2705/datastructure_tni/tree/main/LabSheet02/src) (Array exercises), [`LabSheet07/src`](https://github.com/naron2705/datastructure_tni/tree/main/LabSheet07/src) (List applications), [`LabSheet08/src`](https://github.com/naron2705/datastructure_tni/tree/main/LabSheet08/src) (Tree exercises)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_arrays["Arrays"]
  node_array_exercises["Array exercises"]
  node_array_controller["Number controller"]
end

subgraph group_lists["Linked lists"]
  node_list_exercises["List exercises"]
  node_singly_list["Singly linked list<br/>[LinkedList.java]"]
  node_doubly_list["Doubly linked list"]
  node_list_apps["List applications"]
  node_singly_app_list["Singly-list API"]
end

subgraph group_linear["Stacks and queues"]
  node_stack_exercises["Stack exercises"]
  node_stack_variants["Stack variants"]
  node_queue_exercises["Queue exercises"]
  node_queue_variants["Queue variants"]
  node_printer_queue["Printer queue demo<br/>[LabQueue04.java]"]
end

subgraph group_trees["Trees"]
  node_tree_exercises["Tree exercises"]
  node_binary_tree["Binary tree operations<br/>[BinaryTree.java]"]
  node_tree_height["Tree height<br/>[TreeHeight.java]"]
  node_bst_exercises["BST exercises"]
  node_bst["Binary search tree"]
end

subgraph group_algorithms["Sorting and search"]
  node_sorting_demo["Sorting demo<br/>[TestApp.java]"]
  node_sorting["Sorting algorithms<br/>[Sorting.java]"]
  node_search_demos["Search demos"]
  node_search_bst["Search demo tree"]
  node_search_methods["Search methods"]
end

node_learner(("Learner"))

node_learner -->|"runs"| node_array_exercises
node_array_exercises -->|"uses"| node_array_controller
node_learner -->|"runs"| node_list_exercises
node_learner -->|"runs"| node_list_apps
node_list_apps -->|"exercises"| node_singly_app_list
node_learner -->|"runs"| node_stack_exercises
node_learner -->|"runs"| node_queue_exercises
node_learner -->|"runs"| node_printer_queue
node_learner -->|"runs"| node_tree_exercises
node_tree_exercises -->|"calculates"| node_tree_height
node_learner -->|"runs"| node_bst_exercises
node_bst_exercises -->|"operates"| node_bst
node_learner -->|"runs"| node_sorting_demo
node_sorting_demo -->|"sorts with"| node_sorting
node_learner -->|"runs"| node_search_demos
node_search_demos -->|"builds"| node_search_bst
node_search_demos -->|"searches with"| node_search_methods

click node_array_exercises "https://github.com/naron2705/datastructure_tni/tree/main/LabSheet02/src"
click node_array_controller "https://github.com/naron2705/datastructure_tni/blob/main/LabSheet02/src/NumArrayController.java"
click node_list_exercises "https://github.com/naron2705/datastructure_tni/tree/main/LabSheet03/src"
click node_singly_list "https://github.com/naron2705/datastructure_tni/blob/main/LabSheet03/src/LinkedList.java"
click node_doubly_list "https://github.com/naron2705/datastructure_tni/blob/main/LabSheet04/src/DoublyLinkedList.java"
click node_list_apps "https://github.com/naron2705/datastructure_tni/tree/main/LabSheet07/src"
click node_singly_app_list "https://github.com/naron2705/datastructure_tni/blob/main/LabSheet07/src/SinglyLinkedList.java"
click node_stack_exercises "https://github.com/naron2705/datastructure_tni/tree/main/LabSheet05/src"
click node_stack_variants "https://github.com/naron2705/datastructure_tni/blob/main/LabSheet05/src/StackArrayBased.java"
click node_queue_exercises "https://github.com/naron2705/datastructure_tni/tree/main/LabSheet06/src"
click node_queue_variants "https://github.com/naron2705/datastructure_tni/blob/main/LabSheet06/src/QueueArrayBased.java"
click node_printer_queue "https://github.com/naron2705/datastructure_tni/blob/main/LabSheet06/src/LabQueue04.java"
click node_tree_exercises "https://github.com/naron2705/datastructure_tni/tree/main/LabSheet08/src"
click node_binary_tree "https://github.com/naron2705/datastructure_tni/blob/main/LabSheet09/src/BinaryTree.java"
click node_tree_height "https://github.com/naron2705/datastructure_tni/blob/main/LabSheet08/src/TreeHeight.java"
click node_bst_exercises "https://github.com/naron2705/datastructure_tni/tree/main/LabSheet10/src"
click node_bst "https://github.com/naron2705/datastructure_tni/blob/main/LabSheet10/src/BinarySearchTree.java"
click node_sorting_demo "https://github.com/naron2705/datastructure_tni/blob/main/LabSheet11/src/TestApp.java"
click node_sorting "https://github.com/naron2705/datastructure_tni/blob/main/LabSheet11/src/Sorting.java"
click node_search_demos "https://github.com/naron2705/datastructure_tni/tree/main/LabSheet12/src"
click node_search_bst "https://github.com/naron2705/datastructure_tni/blob/main/LabSheet12/src/BinarySearchTree.java"
click node_search_methods "https://github.com/naron2705/datastructure_tni/tree/main/LabSheet12/src"

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_exercises,node_array_controller toneBlue
class node_list_exercises,node_singly_list,node_doubly_list,node_list_apps,node_singly_app_list toneAmber
class node_stack_exercises,node_stack_variants,node_queue_exercises,node_queue_variants,node_printer_queue toneMint
class node_tree_exercises,node_binary_tree,node_tree_height,node_bst_exercises,node_bst toneRose
class node_sorting_demo,node_sorting,node_search_demos,node_search_bst,node_search_methods,node_learner toneIndigo
```

## Components

### Arrays

- [Array exercises](https://github.com/naron2705/datastructure_tni/tree/main/LabSheet02/src): `LabSheet02/src`
- [Number controller](https://github.com/naron2705/datastructure_tni/blob/main/LabSheet02/src/NumArrayController.java): `LabSheet02/src/NumArrayController.java`

### Linked lists

- [List exercises](https://github.com/naron2705/datastructure_tni/tree/main/LabSheet03/src): `LabSheet03/src`
- [Singly linked list](https://github.com/naron2705/datastructure_tni/blob/main/LabSheet03/src/LinkedList.java): `LabSheet03/src/LinkedList.java`
- [Doubly linked list](https://github.com/naron2705/datastructure_tni/blob/main/LabSheet04/src/DoublyLinkedList.java): `LabSheet04/src/DoublyLinkedList.java`
- [List applications](https://github.com/naron2705/datastructure_tni/tree/main/LabSheet07/src): `LabSheet07/src`
- [Singly-list API](https://github.com/naron2705/datastructure_tni/blob/main/LabSheet07/src/SinglyLinkedList.java): `LabSheet07/src/SinglyLinkedList.java`

### Stacks and queues

- [Stack exercises](https://github.com/naron2705/datastructure_tni/tree/main/LabSheet05/src): `LabSheet05/src`
- [Stack variants](https://github.com/naron2705/datastructure_tni/blob/main/LabSheet05/src/StackArrayBased.java): `LabSheet05/src/StackArrayBased.java`
- [Queue exercises](https://github.com/naron2705/datastructure_tni/tree/main/LabSheet06/src): `LabSheet06/src`
- [Queue variants](https://github.com/naron2705/datastructure_tni/blob/main/LabSheet06/src/QueueArrayBased.java): `LabSheet06/src/QueueArrayBased.java`
- [Printer queue demo](https://github.com/naron2705/datastructure_tni/blob/main/LabSheet06/src/LabQueue04.java): `LabSheet06/src/LabQueue04.java`

### Trees

- [Tree exercises](https://github.com/naron2705/datastructure_tni/tree/main/LabSheet08/src): `LabSheet08/src`
- [Binary tree operations](https://github.com/naron2705/datastructure_tni/blob/main/LabSheet09/src/BinaryTree.java): `LabSheet09/src/BinaryTree.java`
- [Tree height](https://github.com/naron2705/datastructure_tni/blob/main/LabSheet08/src/TreeHeight.java): `LabSheet08/src/TreeHeight.java`
- [BST exercises](https://github.com/naron2705/datastructure_tni/tree/main/LabSheet10/src): `LabSheet10/src`
- [Binary search tree](https://github.com/naron2705/datastructure_tni/blob/main/LabSheet10/src/BinarySearchTree.java): `LabSheet10/src/BinarySearchTree.java`

### Sorting and search

- [Sorting demo](https://github.com/naron2705/datastructure_tni/blob/main/LabSheet11/src/TestApp.java): `LabSheet11/src/TestApp.java`
- [Sorting algorithms](https://github.com/naron2705/datastructure_tni/blob/main/LabSheet11/src/Sorting.java): `LabSheet11/src/Sorting.java`
- [Search demos](https://github.com/naron2705/datastructure_tni/tree/main/LabSheet12/src): `LabSheet12/src`
- [Search demo tree](https://github.com/naron2705/datastructure_tni/blob/main/LabSheet12/src/BinarySearchTree.java): `LabSheet12/src/BinarySearchTree.java`
- [Search methods](https://github.com/naron2705/datastructure_tni/tree/main/LabSheet12/src): `LabSheet12/src`

### Other components

- **Learner**

## Connections

- Learner → Array exercises: runs
- Array exercises → Number controller: uses
- Learner → List exercises: runs
- Learner → List applications: runs
- List applications → Singly-list API: exercises
- Learner → Stack exercises: runs
- Learner → Queue exercises: runs
- Learner → Printer queue demo: runs
- Learner → Tree exercises: runs
- Tree exercises → Tree height: calculates
- Learner → BST exercises: runs
- BST exercises → Binary search tree: operates
- Learner → Sorting demo: runs
- Sorting demo → Sorting algorithms: sorts with
- Learner → Search demos: runs
- Search demos → Search demo tree: builds
- Search demos → Search methods: searches with
