This repository contains study notes, exercises, and implementations of fundamental Data Structures (ED) and algorithms, all written in C. This project is focused on understanding how data structures work internally, improving programming logic, and building a strong foundation in algorithms and problem solving.
It also includes the study of Abstract Data Types (TADs), such as stacks and queues, showing how they can be modeled and implemented in a practical way. In addition, the repository covers work with arrays, linked lists, stacks, queues, sorting algorithms, and C rules exercises, all in a direct and hands-on manner.
All code in this repository is written in C, and the programs can be compiled with gcc.
.
├── exercicios # C exercises: arrays, pointers, malloc, stacks & practice problems
├── lista-ligada # Linked lists: singly, doubly, circular & with/without head
├── pilha-fila # Stack (LIFO) and Queue (FIFO) implementations
└── sorting # Sorting algorithms
What's inside each directory:
| Directory | Description |
|---|---|
exercicios |
Hands-on C exercises and exam questions covering arrays, pointers, dynamic memory (malloc), random lists, and stack-based problems. Great for practicing C fundamentals and logic. |
lista-ligada |
Linked list implementations in their main variations: doubly linked, circular, and singly linked with and without head node — each as a reusable package of functions. |
pilha-fila |
Classic abstract data types: a Stack (pilha, LIFO) and a Queue (fila, FIFO), each implemented with its own struct and operations. |
sorting |
Sorting algorithms written from scratch. |
The main purpose of this repository is to:
- practice data structures in C
- study Abstract Data Types (TADs)
- improve programming logic
- understand memory management
- study algorithm behavior
- prepare for technical interviews and academic exercises
To compile a C program using gcc, use the following command:
gcc file_name.c -o output_name
Example:
gcc main.c -o main
To run the compiled program:
./main
If your program uses more than one file, you can compile them together:
gcc main.c list.c queue.c stack.c -o program