https://github.com/welli7ngton/c-data-structures
Implementation of data-structures from basic to advanced in C and testing them all, all the codes are based in this playlist: https://youtu.be/bryesHll0vY?si=W-r62UHfNyX0ryHC
https://github.com/welli7ngton/c-data-structures
algorithms c c-algorithms c-data-structures-and-algorithms data-structures tests
Last synced: 5 months ago
JSON representation
Implementation of data-structures from basic to advanced in C and testing them all, all the codes are based in this playlist: https://youtu.be/bryesHll0vY?si=W-r62UHfNyX0ryHC
- Host: GitHub
- URL: https://github.com/welli7ngton/c-data-structures
- Owner: welli7ngton
- Created: 2024-11-22T13:08:39.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-02-14T15:48:22.000Z (10 months ago)
- Last Synced: 2025-02-14T16:35:59.175Z (10 months ago)
- Topics: algorithms, c, c-algorithms, c-data-structures-and-algorithms, data-structures, tests
- Language: C
- Homepage:
- Size: 53.7 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Estruturas de Dados em C
Bem-vindo ao repositório **Estruturas de Dados em C**! Este projeto tem como objetivo implementar TADs (Tipos Abstratos de Dados) que representam diversas estruturas de dados, junto com uma suíte de testes para validar seu funcionamento.
## Sumário
- [Lista Sequencial Estática](#1-lista-sequencial-estatica)
- [Lista Dinamicamente Encadeada](#2-lista-dinamicamente-encadeada)
## Estrutura do Projeto
- **src/**: Contém os TADs das estruturas de dados implementados.
- Exemplo atual: `sequential_list/` (lista sequencial estática).
- **test/**: Código dedicado para testes unitários e validações dos TADs.
- **Makefile**: Automatiza a compilação dos testes, facilitando o desenvolvimento e a manutenção.
## Funcionalidades Implementadas
### 1. Lista Sequencial Estática
- Arquivo fonte: [sequential_list.c](./src/sequential_list/sequential_list.c)
- Cabeçalho: [sequential_list.h](./src/sequential_list/sequential_list.h)
- Testes: [test/sequential_list.c](./test/sequential_list.c)
- **Descrição**: Uma lista estática que armazena elementos em um array fixo, permitindo operações básicas como inserção no final, inicio, organizada (sorted), remoção por index, remoção por dado, busca por index e busca por dado. Estou usando uma estrutura de dados personalizada simulando o cadastro de um aluno para ter um dado dinâmico para trabalhar.
### 2. Lista Dinamicamente Encadeada
- Arquivo fonte: [dinamic_list.c](./src/dinamic_list/dinamic_list.c)
- Cabeçalho: [dinamic_list.h](./src/dinamic_list/dinamic_list.h)
- Testes: [test/dinamic_list.c](./test/dinamic_list.c)
- **Descrição**: Uma lista dinamicamente encadeada armazena elementos em nós, onde cada nó contém um valor e um ponteiro para o próximo. Isso permite inserção e remoção eficientes de elementos, sem necessidade de realocar memória. Estou usando essa estrutura para simular o cadastro dinâmico de alunos, facilitando a adição e remoção de registros sem um tamanho fixo de lista.
## Como Usar
### Pré-requisitos
- Compilador GCC instalado.
- Make instalado.
### Compilação dos Testes
1. Escolha o arquivo a ser testado, definindo o parâmetro `TEST`. Por exemplo:
```bash
make TEST=sequential_list
```
2. Execute o programa gerado:
```bash
./sequential_list.test
```
3. Para limpar os executáveis:
```bash
make clean
```