Repositório contendo implementações educacionais de estruturas de dados fundamentais em Java. Este projeto demonstra conceitos de algoritmos, lógica de programação e programação orientada a objetos (POO) através de implementações práticas.
- ✅ Implementações personalizadas de estruturas clássicas
- ✅ Padrões com dados em array e estruturas encadeadas
- ✅ Código bem documentado e exemplos práticos
- ✅ Suporte genérico com tipos parametrizados
- ✅ Tratamento robusto de exceções
- ✅ Aplicações reais das estruturas (ex: resolução de labirintos)
java-data-structures/
├── maze-solver/ # Solver de labirintos usando pilhas
├── queues/ # Implementações de filas e listas
├── tree-and-map/ # Árvores binárias e mapas
└── README.md
Solução de labirintos utilizando estrutura de dados Pilha.
Estruturas incluídas:
Pilha<T>- Pilha genéricaPilhaAbstrata- Classe abstrataPilhaEncadeada<T>- Implementação encadeada
Funcionalidades:
- Carregamento de labirinto via arquivo
- Algoritmo de resolução com backtracking
- Rastreamento de caminho percorrido
Sistema de gerenciamento com implementações de filas e listas.
Estruturas incluídas:
Fila<T>- Fila genéricaFilaAbstrata- Classe abstrataFilaEncadeada<T>- Implementação encadeadaLista<T>- Lista genéricaListaArray<T>- Implementação com arrayListaEncadeada<T>- Implementação encadeadaListaOrdenada<T>- Lista com manutenção de ordemListaOrdenadaComBuscaBinaria<T>- Busca otimizada
Modelo de dados:
Pessoa- Classe com suporte a chaves (implementaChaveavel)
Funcionalidades:
- Operações FIFO (First In, First Out)
- Inserção, remoção e busca
- Busca binária em listas ordenadas
- Gerenciamento de pessoas com CPF e idade
Implementações de estruturas hierárquicas e de mapeamento.
Estruturas incluídas:
ArvoreBinaria<T>- Árvore binária genéricaMapa<K, V>- Mapa de chave-valorChaveavel- Interface para objetos com chaves
Funcionalidades:
- Inserção e busca em árvores
- Operações de mapeamento
- Navegação hierárquica
- Java 8+ (ou versão superior)
- JDK instalado e configurado no PATH
- Editor de código ou IDE (Eclipse, IntelliJ IDEA, Visual Studio Code)
# Acessar o módulo desejado
cd maze-solver
# Compilar todos os arquivos
javac -d bin src/**/*.java
# Executar
java -cp bin controller.CtrlPrograma- Importe o projeto na sua IDE
- Configure o build path para incluir os diretórios
src/ - Execute a classe
CtrlProgramade cada módulo
Este projeto cobre:
| Conceito | Módulo |
|---|---|
| Pilhas e recursão | Maze Solver |
| Filas e listas | Queues |
| Árvores e busca | Tree and Map |
| Genéricos em Java | Todos |
| Tratamento de exceções | Todos |
| Leitura/Escrita de arquivos | Maze Solver |
| Algoritmos de busca | Queues, Tree and Map |
- Este é um projeto educacional com foco em compreensão de conceitos
- As implementações priorizam clareza sobre performance
- Estruturas são implementadas do zero, sem uso de collections padrão do Java
Autor: Desenvolvido como material de aprendizado em Estruturas de Dados e Algoritmos