Skip to content

Este repositório reúne implementações de estruturas de dados e algoritmos em Java, incluindo filas, listas, árvore, mapa e um solucionador de labirinto..

Notifications You must be signed in to change notification settings

vicentiin/java-data-structures

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

📊 Estruturas de Dados em Java

Visão Geral

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.

📋 Sumário

✨ Características

  • ✅ 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)

📁 Estrutura do Projeto

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

🔧 Módulos

1. Maze Solver 🌀

Solução de labirintos utilizando estrutura de dados Pilha.

Estruturas incluídas:

  • Pilha<T> - Pilha genérica
  • PilhaAbstrata - Classe abstrata
  • PilhaEncadeada<T> - Implementação encadeada

Funcionalidades:

  • Carregamento de labirinto via arquivo
  • Algoritmo de resolução com backtracking
  • Rastreamento de caminho percorrido

2. Queues 👥

Sistema de gerenciamento com implementações de filas e listas.

Estruturas incluídas:

  • Fila<T> - Fila genérica
  • FilaAbstrata - Classe abstrata
  • FilaEncadeada<T> - Implementação encadeada
  • Lista<T> - Lista genérica
  • ListaArray<T> - Implementação com array
  • ListaEncadeada<T> - Implementação encadeada
  • ListaOrdenada<T> - Lista com manutenção de ordem
  • ListaOrdenadaComBuscaBinaria<T> - Busca otimizada

Modelo de dados:

  • Pessoa - Classe com suporte a chaves (implementa Chaveavel)

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

3. Tree and Map 🌳

Implementações de estruturas hierárquicas e de mapeamento.

Estruturas incluídas:

  • ArvoreBinaria<T> - Árvore binária genérica
  • Mapa<K, V> - Mapa de chave-valor
  • Chaveavel - Interface para objetos com chaves

Funcionalidades:

  • Inserção e busca em árvores
  • Operações de mapeamento
  • Navegação hierárquica

📋 Pré-requisitos

  • Java 8+ (ou versão superior)
  • JDK instalado e configurado no PATH
  • Editor de código ou IDE (Eclipse, IntelliJ IDEA, Visual Studio Code)

🚀 Como Compilar e Executar

Compilação Manual

# Acessar o módulo desejado
cd maze-solver

# Compilar todos os arquivos
javac -d bin src/**/*.java

# Executar
java -cp bin controller.CtrlPrograma

Com IDE

  1. Importe o projeto na sua IDE
  2. Configure o build path para incluir os diretórios src/
  3. Execute a classe CtrlPrograma de cada módulo

📚 Aprendizados

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

📝 Notas

  • 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

About

Este repositório reúne implementações de estruturas de dados e algoritmos em Java, incluindo filas, listas, árvore, mapa e um solucionador de labirinto..

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages