Repositório acadêmico com exercícios, laboratórios, trabalhos práticos e materiais de Algoritmos e Estruturas de Dados II
Desenvolvido em C e Java durante a disciplina AEDS II
Este repositório reúne implementações e materiais produzidos ao longo da disciplina de Algoritmos e Estruturas de Dados II (AEDS II). O conteúdo está organizado para apoiar o estudo de análise de algoritmos, ordenação, pesquisa, estruturas lineares, estruturas flexíveis e árvores.
O objetivo é manter um registro acadêmico claro das atividades práticas da disciplina, incluindo exercícios de laboratório, preparação para provas, trabalhos práticos e slides de apoio.
AEDS-II/
│
├── 📁 Exercicios/
│ ├── Labs/ # Exercícios de laboratório em C e Java
│ └── PreProva/ # Exercícios de revisão e preparação para provas
│
├── 📁 MyIO/
│ └── MyIO.java # Biblioteca auxiliar de entrada e saída utilizada em Java
│
├── 📁 Slides/
│ ├── PROVA 1/ # Materiais sobre somatórios e análise de complexidade
│ └── PROVA 2/ # Materiais sobre árvores binárias
│
└── 📁 TPs/
├── TP1/ # Strings, recursividade e problemas introdutórios
├── TP2/ # Modelagem, pesquisa, ordenação e estruturas lineares
│ └── TESTES/ # Arquivos e bases de teste do TP2
└── TP3/ # Ordenação parcial, estruturas flexíveis, matrizes e árvores
- Implementações em C e Java para fixação dos conteúdos da disciplina
- Exercícios de laboratório envolvendo estruturas, ponteiros, células e árvores
- Atividades de preparação para provas com problemas de lógica e estruturas de dados
- TP1: ciframento, alteração aleatória, validação de strings, inversão, soma de dígitos, anagramas, substrings e recursividade
- TP2: modelagem de dados, leitura de CSV, pesquisa sequencial e binária, algoritmos de ordenação, lista, pilha e fila circular
- TP3: seleção, inserção, quicksort e heapsort parciais, lista flexível, pilha flexível, fila flexível, lista dupla, matriz dinâmica e árvore binária
- Análise de complexidade e somatórios
- Algoritmos de ordenação: inserção, seleção, merge sort, quicksort, heap sort e counting sort
- Algoritmos de pesquisa: sequencial e binária
- Estruturas lineares: listas, pilhas e filas
- Estruturas flexíveis com alocação dinâmica
- Matrizes dinâmicas com células encadeadas
- Árvores binárias e operações de inserção, pesquisa, caminhamento e remoção
| Tecnologia | Uso Principal |
|---|---|
| 🟦 C | Ponteiros, alocação dinâmica, structs e estruturas de dados |
| ☕ Java | Orientação a objetos, modelagem, leitura de dados e estruturas dinâmicas |
| 📄 CSV | Bases de dados utilizadas em trabalhos práticos |
- GCC para compilação dos programas em C
- JDK para compilação e execução dos programas em Java
- Git & GitHub para versionamento do repositório
- VS Code como ambiente de desenvolvimento
gcc TPs/TP1/q4inversao.c -o q4inversao
./q4inversaoCompile e execute informando o diretório do arquivo no classpath:
javac TPs/TP3/q9matrizDinamica.java
java -cp TPs/TP3 q9matrizDinamicaOs exercícios que utilizam MyIO dependem da biblioteca em MyIO/MyIO.java. Nesses casos, confira se o arquivo do exercício está compatível com o pacote/import da biblioteca antes da compilação.
Alguns trabalhos utilizam arquivos auxiliares, como
TPs/TP2/restaurantes.csv. Nesses casos, execute o programa considerando o caminho esperado pelo código-fonte.
Os materiais teóricos estão organizados na pasta Slides/:
Slides/PROVA 1/: noções de complexidade, somatórios e fundamentos de análise de algoritmosSlides/PROVA 2/: árvores binárias, inserção, pesquisa, caminhamento, remoção e implementações em C/C++
Desenvolvido durante o curso de Ciência da Computação