# ddeann23/data-structures architecture

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

## Overview

This repository is a set of four independent Java console exercises demonstrating data structures, not one integrated application. In each, a terminal user selects operations and sees results: a binary-search-tree menu, a graph menu, a FIFO queue menu, or a circular doubly linked-list menu. The structure classes implement the operations and use node/vertex representations; the graph additionally uses a resizable list for vertices and adjacency lists. Edges reflect calls or data structures visible in the excerpts; no README or external services are present.

Main entry points: [`FinalsLabExcercise2/src/Graph.java`](https://github.com/ddeann23/data-structures/blob/main/FinalsLabExcercise2/src/Graph.java) (Graph Operations), [`FinalsLabExcercise2/src/Vertex.java`](https://github.com/ddeann23/data-structures/blob/main/FinalsLabExcercise2/src/Vertex.java) (Vertex), [`FinalsLabExcercise2/src/List.java`](https://github.com/ddeann23/data-structures/blob/main/FinalsLabExcercise2/src/List.java) (Vertex List), [`FinalsLabExcercise1/src/Main.java`](https://github.com/ddeann23/data-structures/blob/main/FinalsLabExcercise1/src/Main.java) (BST Menu)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_bst["Binary Search Tree"]
  node_bst_menu["BST Menu<br/>[Main.java]"]
  node_bst_ops["BST Operations"]
  node_bst_node["Tree Node<br/>[Node.java]"]
end

subgraph group_graph["Graph Exercise"]
  node_graph_menu["Graph Menu<br/>[Main.java]"]
  node_graph_ops["Graph Operations<br/>[Graph.java]"]
  node_vertex["Vertex<br/>[Vertex.java]"]
  node_graph_list["Vertex List<br/>[List.java]"]
end

subgraph group_queue["Queue Exercise"]
  node_queue_menu["Queue Menu<br/>[QueueMain.java]"]
  node_queue_ops["Queue Operations"]
  node_queue_node["Queue Node<br/>[Node.java]"]
end

subgraph group_dll["Doubly Linked List"]
  node_list_menu["List Menu<br/>[Main.java]"]
  node_dll_ops["Circular List Operations"]
  node_dll_node["List Node<br/>[Node.java]"]
end

node_terminal_user(("Terminal User"))

node_terminal_user -->|"selects operations"| node_bst_menu
node_bst_menu -->|"invokes"| node_bst_ops
node_bst_ops -->|"builds tree"| node_bst_node
node_terminal_user -->|"selects operations"| node_graph_menu
node_graph_menu -->|"invokes"| node_graph_ops
node_graph_ops -->|"stores vertices"| node_graph_list
node_graph_ops -->|"creates and traverses"| node_vertex
node_graph_list -->|"stores vertices"| node_vertex
node_vertex -->|"stores neighbors"| node_graph_list
node_terminal_user -->|"selects operations"| node_queue_menu
node_queue_menu -->|"invokes"| node_queue_ops
node_queue_ops -->|"links queue items"| node_queue_node
node_terminal_user -->|"selects operations"| node_list_menu
node_list_menu -->|"invokes"| node_dll_ops
node_dll_ops -->|"links list items"| node_dll_node

click node_bst_menu "https://github.com/ddeann23/data-structures/blob/main/FinalsLabExcercise1/src/Main.java"
click node_bst_ops "https://github.com/ddeann23/data-structures/blob/main/FinalsLabExcercise1/src/BinarySearchTree.java"
click node_bst_node "https://github.com/ddeann23/data-structures/blob/main/FinalsLabExcercise1/src/Node.java"
click node_graph_menu "https://github.com/ddeann23/data-structures/blob/main/FinalsLabExcercise2/src/Main.java"
click node_graph_ops "https://github.com/ddeann23/data-structures/blob/main/FinalsLabExcercise2/src/Graph.java"
click node_vertex "https://github.com/ddeann23/data-structures/blob/main/FinalsLabExcercise2/src/Vertex.java"
click node_graph_list "https://github.com/ddeann23/data-structures/blob/main/FinalsLabExcercise2/src/List.java"
click node_queue_menu "https://github.com/ddeann23/data-structures/blob/main/Queue/src/QueueMain.java"
click node_queue_ops "https://github.com/ddeann23/data-structures/blob/main/Queue/src/QueueDataStructure.java"
click node_queue_node "https://github.com/ddeann23/data-structures/blob/main/Queue/src/Node.java"
click node_list_menu "https://github.com/ddeann23/data-structures/blob/main/facingmyfears/src/facingmyfears/Main.java"
click node_dll_ops "https://github.com/ddeann23/data-structures/blob/main/facingmyfears/src/facingmyfears/DoublyLinkedList.java"
click node_dll_node "https://github.com/ddeann23/data-structures/blob/main/facingmyfears/src/facingmyfears/Node.java"

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_bst_menu,node_bst_ops,node_bst_node,node_terminal_user toneBlue
class node_graph_menu,node_graph_ops,node_vertex,node_graph_list toneAmber
class node_queue_menu,node_queue_ops,node_queue_node toneMint
class node_list_menu,node_dll_ops,node_dll_node toneRose
```

## Components

### Binary Search Tree

- [BST Menu](https://github.com/ddeann23/data-structures/blob/main/FinalsLabExcercise1/src/Main.java): `FinalsLabExcercise1/src/Main.java`
- [BST Operations](https://github.com/ddeann23/data-structures/blob/main/FinalsLabExcercise1/src/BinarySearchTree.java): `FinalsLabExcercise1/src/BinarySearchTree.java`
- [Tree Node](https://github.com/ddeann23/data-structures/blob/main/FinalsLabExcercise1/src/Node.java): `FinalsLabExcercise1/src/Node.java`

### Graph Exercise

- [Graph Menu](https://github.com/ddeann23/data-structures/blob/main/FinalsLabExcercise2/src/Main.java): `FinalsLabExcercise2/src/Main.java`
- [Graph Operations](https://github.com/ddeann23/data-structures/blob/main/FinalsLabExcercise2/src/Graph.java): `FinalsLabExcercise2/src/Graph.java`
- [Vertex](https://github.com/ddeann23/data-structures/blob/main/FinalsLabExcercise2/src/Vertex.java): `FinalsLabExcercise2/src/Vertex.java`
- [Vertex List](https://github.com/ddeann23/data-structures/blob/main/FinalsLabExcercise2/src/List.java): `FinalsLabExcercise2/src/List.java`

### Queue Exercise

- [Queue Menu](https://github.com/ddeann23/data-structures/blob/main/Queue/src/QueueMain.java): `Queue/src/QueueMain.java`
- [Queue Operations](https://github.com/ddeann23/data-structures/blob/main/Queue/src/QueueDataStructure.java): `Queue/src/QueueDataStructure.java`
- [Queue Node](https://github.com/ddeann23/data-structures/blob/main/Queue/src/Node.java): `Queue/src/Node.java`

### Doubly Linked List

- [List Menu](https://github.com/ddeann23/data-structures/blob/main/facingmyfears/src/facingmyfears/Main.java): `facingmyfears/src/facingmyfears/Main.java`
- [Circular List Operations](https://github.com/ddeann23/data-structures/blob/main/facingmyfears/src/facingmyfears/DoublyLinkedList.java): `facingmyfears/src/facingmyfears/DoublyLinkedList.java`
- [List Node](https://github.com/ddeann23/data-structures/blob/main/facingmyfears/src/facingmyfears/Node.java): `facingmyfears/src/facingmyfears/Node.java`

### Other components

- **Terminal User**

## Connections

- Terminal User → BST Menu: selects operations (evidence: `FinalsLabExcercise1/src/Main.java`)
- BST Menu → BST Operations: invokes (evidence: `FinalsLabExcercise1/src/Main.java`)
- BST Operations → Tree Node: builds tree (evidence: `FinalsLabExcercise1/src/BinarySearchTree.java`)
- Terminal User → Graph Menu: selects operations (evidence: `FinalsLabExcercise2/src/Main.java`)
- Graph Menu → Graph Operations: invokes (evidence: `FinalsLabExcercise2/src/Main.java`)
- Graph Operations → Vertex List: stores vertices (evidence: `FinalsLabExcercise2/src/Graph.java`)
- Graph Operations → Vertex: creates and traverses (evidence: `FinalsLabExcercise2/src/Graph.java`)
- Vertex List → Vertex: stores vertices (evidence: `FinalsLabExcercise2/src/List.java`)
- Vertex → Vertex List: stores neighbors (evidence: `FinalsLabExcercise2/src/Vertex.java`)
- Terminal User → Queue Menu: selects operations (evidence: `Queue/src/QueueMain.java`)
- Queue Menu → Queue Operations: invokes (evidence: `Queue/src/QueueMain.java`)
- Queue Operations → Queue Node: links queue items (evidence: `Queue/src/QueueDataStructure.java`)
- Terminal User → List Menu: selects operations (evidence: `facingmyfears/src/facingmyfears/Main.java`)
- List Menu → Circular List Operations: invokes (evidence: `facingmyfears/src/facingmyfears/Main.java`)
- Circular List Operations → List Node: links list items (evidence: `facingmyfears/src/facingmyfears/DoublyLinkedList.java`)
