Itens Gerais
Bibliografia
C
C++
Slides e Implementações
Material
Exemplos de Listas (vide material em "Implementações")
Respostas dos exercícios (pdf)
Implementação (vide livro Celes)
Extras
Exemplo de uso de strstr para buscar por sub-strings
Programação com strings em C (slides prof. Deise)
Árvores
Árvores de n-filhos (pdf)
Exemplo de implementação
Em C (dados char)
Árvores Binárias (pdf)
Árvores Binárias de busca (pdf)
Árvores AVL (pdf)
Exemplo ABBs vs AVL (pdf)
Visualização de Operações em árvores AVL:
Grafos
Trabalho 1 - Alocação Dinâmica, Listas
Criar um programa para controle acadêmico, que atenda aos seguintes requisitos mínimos:
Os dados devem ser armazenados em listas em memória.
Deve ser possível cadastrar alunos, professores, disciplinas e turmas (operações: incluir, excluir, buscar e visualizar).
Cada aluno deve ter os seguintes dados: matrícula, nome, curso.
Cada professor deve ter os seguintes dados: código, nome.
Cada disciplina deve ter os seguintes dados: código, curso, nome, carga horária.
Deve ser possível matricular alunos em uma turma. Uma turma pode ter apenas um professor associado.
Trabalho 2 - Árvores binárias de busca
Considere uma lista de carros, onde cada carro possui os seguintes campos: placa, marca e ano. Crie um programa com os seguintes requisitos:
A lista deve ser ordenada fisicamente pela placa dos carros.
Deve ser possivel incluir e excluir carros na lista.
Deve ser mantida em memória uma árvore binária relativa à placa dos carros.
Deve ser mantida em memória uma árvore binária cujo percurso seja equivalente à lista ordenada pelo marca.
Deve ser mantida em memória uma árvore binária cujo percurso seja equivalente à lista ordenada pela ano.
Deve ser possível buscar carros pela placa, usando a árvore binária auxiliar.
Deve ser possivel listar os carros ordenadamente pela placa, percorrendo a lista.
Deve ser possivel listar os carros ordenadamente pelo marca, através da árvore auxiliar.
Deve ser possivel listar os carros ordenadamente pela ano, através da árvore auxiliar.
Trabalho 3 - Grafos
Utilize o material de apoio no site da disciplina e crie um programa que receba um grafo (com nós numerados) como entrada e seja capaz de atender aos seguintes requisitos:
O grafo deve ser representado usando listas de adjacência (veja o slide 38 de "Grafos - Introducao").
O programa deve ser capaz de percorrer o grafo a partir de um nó informado pelo usuário por largura ou por profundidade, mostrando o percurso em pré-ordem e em pós-ordem (veja os slides de "Grafos - Busca em Largura" e "Grafos - Busca em Profundidade".
Prova 1
Conteúdo: Alocação dinâmica e Ponteiros, Listas, Pilhas e Filas
Sugestão de leitura - Livro Celes - Bibliografia básica:
Cap 7 - Alocação Dinâmica, 8 - Cadeias de Caracteres, 9 - Tipos Estruturados
Cap 12 - Tipos Abstratos de Dados, 14 - Listas Encadeadas, 15 - Pilhas e Filas e 17 - Estruturas Genéricas (17.1 e 17.2)