# mateusfkschenato/praticas-ed architecture

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

- Interactive diagram: https://gitdiagram.com/mateusfkschenato/praticas-ed
- Repository: https://github.com/mateusfkschenato/praticas-ed

## Overview

This repository is a set of five independent C data-structure lab demos, not one integrated application. Each lab’s main program initializes or populates a structure, exercises operations, and prints results. The distinct stages are a contiguous product list, singly linked list, doubly linked list, queue operations, and binary-search-tree operations. The tree additionally implements search, insertion/removal, traversal, counting, height, and pruning. Edges show only calls visible in the sampled mains; the queue demo also uses a stack, but its implementation is absent from the supplied tree, so that subsystem is not mapped.

Main entry points: [`Laboratório 1/main.c`](https://github.com/mateusfkschenato/praticas-ed/blob/main/Laborat%C3%B3rio%201/main.c) (List Demo), [`Laboratório 2/main.c`](https://github.com/mateusfkschenato/praticas-ed/blob/main/Laborat%C3%B3rio%202/main.c) (List Demo), [`Laboratório 3/main.c`](https://github.com/mateusfkschenato/praticas-ed/blob/main/Laborat%C3%B3rio%203/main.c) (List Demo), [`Laboratório 4/main.c`](https://github.com/mateusfkschenato/praticas-ed/blob/main/Laborat%C3%B3rio%204/main.c) (Queue Demo)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_contiguous["Contiguous List"]
  node_lab1_demo["List Demo<br/>[main.c]"]
  node_contiguous_list["Product List<br/>[TADListaContEst.c]"]
  node_malloc_demo["Allocation Demo<br/>[malloc.c]"]
end

subgraph group_singly["Singly Linked List"]
  node_lab2_demo["List Demo<br/>[main.c]"]
  node_singly_list["Linked List<br/>[listaEnc.c]"]
end

subgraph group_doubly["Doubly Linked List"]
  node_lab3_demo["List Demo<br/>[main.c]"]
  node_doubly_list["Doubly Linked List<br/>[listaDuplaEnc.c]"]
end

subgraph group_queue["Queue Exercise"]
  node_lab4_demo["Queue Demo<br/>[main.c]"]
  node_queue_impl["Linked Queue<br/>[filaEnc.c]"]
end

subgraph group_tree["Search Tree"]
  node_lab5_demo["Tree Demo<br/>[main.c]"]
  node_bst["Binary Search Tree<br/>[abp.c]"]
end

node_lab1_demo -->|"filters and prints"| node_contiguous_list
node_lab2_demo -->|"calls list operations"| node_singly_list
node_lab3_demo -->|"calls list operations"| node_doubly_list
node_lab4_demo -->|"calls queue operations"| node_queue_impl
node_lab5_demo -->|"calls tree operations"| node_bst

click node_lab1_demo "https://github.com/mateusfkschenato/praticas-ed/blob/main/Laborat%C3%B3rio%201/main.c"
click node_contiguous_list "https://github.com/mateusfkschenato/praticas-ed/blob/main/Laborat%C3%B3rio%201/TADListaContEst.c"
click node_malloc_demo "https://github.com/mateusfkschenato/praticas-ed/blob/main/Laborat%C3%B3rio%201/malloc.c"
click node_lab2_demo "https://github.com/mateusfkschenato/praticas-ed/blob/main/Laborat%C3%B3rio%202/main.c"
click node_singly_list "https://github.com/mateusfkschenato/praticas-ed/blob/main/Laborat%C3%B3rio%202/listaEnc.c"
click node_lab3_demo "https://github.com/mateusfkschenato/praticas-ed/blob/main/Laborat%C3%B3rio%203/main.c"
click node_doubly_list "https://github.com/mateusfkschenato/praticas-ed/blob/main/Laborat%C3%B3rio%203/listaDuplaEnc.c"
click node_lab4_demo "https://github.com/mateusfkschenato/praticas-ed/blob/main/Laborat%C3%B3rio%204/main.c"
click node_queue_impl "https://github.com/mateusfkschenato/praticas-ed/blob/main/Laborat%C3%B3rio%204/filaEnc.c"
click node_lab5_demo "https://github.com/mateusfkschenato/praticas-ed/blob/main/Laborat%C3%B3rio%205/main.c"
click node_bst "https://github.com/mateusfkschenato/praticas-ed/blob/main/Laborat%C3%B3rio%205/abp.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_lab1_demo,node_contiguous_list,node_malloc_demo toneBlue
class node_lab2_demo,node_singly_list toneAmber
class node_lab3_demo,node_doubly_list toneMint
class node_lab4_demo,node_queue_impl toneRose
class node_lab5_demo,node_bst toneIndigo
```

## Components

### Contiguous List

- [List Demo](https://github.com/mateusfkschenato/praticas-ed/blob/main/Laborat%C3%B3rio%201/main.c): `Laboratório 1/main.c`
- [Product List](https://github.com/mateusfkschenato/praticas-ed/blob/main/Laborat%C3%B3rio%201/TADListaContEst.c): `Laboratório 1/TADListaContEst.c`
- [Allocation Demo](https://github.com/mateusfkschenato/praticas-ed/blob/main/Laborat%C3%B3rio%201/malloc.c): `Laboratório 1/malloc.c`

### Singly Linked List

- [List Demo](https://github.com/mateusfkschenato/praticas-ed/blob/main/Laborat%C3%B3rio%202/main.c): `Laboratório 2/main.c`
- [Linked List](https://github.com/mateusfkschenato/praticas-ed/blob/main/Laborat%C3%B3rio%202/listaEnc.c): `Laboratório 2/listaEnc.c`

### Doubly Linked List

- [List Demo](https://github.com/mateusfkschenato/praticas-ed/blob/main/Laborat%C3%B3rio%203/main.c): `Laboratório 3/main.c`
- [Doubly Linked List](https://github.com/mateusfkschenato/praticas-ed/blob/main/Laborat%C3%B3rio%203/listaDuplaEnc.c): `Laboratório 3/listaDuplaEnc.c`

### Queue Exercise

- [Queue Demo](https://github.com/mateusfkschenato/praticas-ed/blob/main/Laborat%C3%B3rio%204/main.c): `Laboratório 4/main.c`
- [Linked Queue](https://github.com/mateusfkschenato/praticas-ed/blob/main/Laborat%C3%B3rio%204/filaEnc.c): `Laboratório 4/filaEnc.c`

### Search Tree

- [Tree Demo](https://github.com/mateusfkschenato/praticas-ed/blob/main/Laborat%C3%B3rio%205/main.c): `Laboratório 5/main.c`
- [Binary Search Tree](https://github.com/mateusfkschenato/praticas-ed/blob/main/Laborat%C3%B3rio%205/abp.c): `Laboratório 5/abp.c`

## Connections

- List Demo → Product List: filters and prints (evidence: `Laboratório 1/main.c`)
- List Demo → Linked List: calls list operations (evidence: `Laboratório 2/main.c`)
- List Demo → Doubly Linked List: calls list operations (evidence: `Laboratório 3/main.c`)
- Queue Demo → Linked Queue: calls queue operations (evidence: `Laboratório 4/main.c`)
- Tree Demo → Binary Search Tree: calls tree operations (evidence: `Laboratório 5/main.c`)
