Skip to content

Implementações de Estruturas de Dados em C: Listas, Pilhas, Filas, Árvores (BST, AVL, Red-Black), Tabelas Hash e Grafos (BFS/DFS).

Notifications You must be signed in to change notification settings

httpSnooow/c-data-structures-algorithms

Repository files navigation

Estruturas de Dados em C

Um repositório de implementações "from scratch" (do zero), focando na lógica algorítmica pura e no gerenciamento manual de memória.

C GCC Algorithms


Objetivo do Repositório

Este projeto não se trata apenas de código, mas de fundamentação teórica aplicada. O objetivo é solidificar o entendimento de como os dados são organizados na memória, abrindo mão de bibliotecas prontas para implementar cada nó, ponteiro e alocação manualmente.

Competências Desenvolvidas

  • Gestão de Memória: Uso extensivo de malloc, free e aritmética de ponteiros.
  • Complexidade Algorítmica: Foco na eficiência das operações de busca, inserção e remoção.
  • Abstração: Implementação de Tipos Abstratos de Dados (TADs).

Estruturas Implementadas

1. Estruturas Lineares

O alicerce da organização de dados sequenciais.

Estrutura Variações Implementadas
Listas Encadeadas • Simplesmente Encadeada
• Duplamente Encadeada
• Circular
• Com Nó Cabeça (Sentinela)
Pilhas (Stacks) Implementações baseadas em Vetores (Arrays) e Listas Dinâmicas.
Filas (Queues) Implementações baseadas em Vetores e Listas.

2. Estruturas Não-Lineares (Árvores)

Implementações hierárquicas focadas em performance de busca.

  • BST (Binary Search Tree): A base das árvores, com operações de inserção, remoção e travessia.
  • AVL Tree: Árvore auto-balanceável.
    • Aplicação Prática: Projeto Dicionário, onde a AVL é usada para garantir buscas em tempo logarítmico $O(\log n)$.
  • Red-Black Tree: Implementação complexa de árvore rubro-negra balanceada.

3. Acesso Rápido & Grafos

Estruturas avançadas para mapeamento e relações.

  • Tabelas Hash: Tratamento de colisões via Endereçamento Aberto e Encadeamento.
  • Grafos:
    • Representação: Matriz de Adjacência e Lista de Adjacência.
    • Algoritmos: Busca em Largura (BFS) e Busca em Profundidade (DFS).

Tecnologias & Ferramentas

Por que C? A escolha da linguagem C foi intencional para permitir o controle total sobre a memória e entender o custo computacional de cada abstração, algo que linguagens de alto nível muitas vezes escondem.


Como Compilar e Rodar

Como os códigos são independentes, você pode compilar qualquer estrutura individualmente usando o GCC.

# Exemplo genérico de compilação
gcc nome_do_arquivo.c -o saida

# Executando
./saida

About

Implementações de Estruturas de Dados em C: Listas, Pilhas, Filas, Árvores (BST, AVL, Red-Black), Tabelas Hash e Grafos (BFS/DFS).

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages