BSI - Bacharelado em Sistemas de Informação
1º Semestre - 2018
ICMC - USP - São Carlos
João do E.S. Batista Neto - jbatista *** icmc usp br (SALA 4-222)
Monitor : Cezar Abadio: cezar.abadio.filho at usp.br
horário atendimento: Terças e Sextas antes da aula, preferencialmente. Mande e-mail se preferir
Fundamentos de grafos e arquivos.
- Grafos
- Definições e conceitos
- Estruturas de dados mais usadas para grafos
- Caminhamento em grafos
- Caminhos míninos
- Coloração
- Ordenação topológica
- Árvores Geradoras
- Arquivos
- Definições e código básico para manipulação de arquivos
- Armazanamento secundário
- Sistemas de Arquivos
- Organização de arquivos
- Índices
- processamento co-sequencial
- Arvores B
- Hashing externo
[Índice]
[Índice]
Aula 1
Apresentação da Disciplina: datas, avaliação etc aqui
Introdução a grafos: aqui
Informações importantes
- Se não tem linux ainda, encorajo fortemente o uso
- Sugiro aprender a usar STL (Standard Template Library
- Código para se cadastrar no RUN CODES (run.codes) ->>> V8ZP
- Manual de referência C (1)
- Manual de referência C (2)
Aula 2
Estrutura de Dados para Grafos aqui
Material de apoio
Aula 3
Estrutura de grafos com STL c++
percurso em grafos: profundidade (DFS - Depth-first Search) e Largura (Breadth-first Search)
Procure programar ambos os percursos utilizando ambas estruturas (STL e a que fizemos na aula anterior)
Site interessante sobre o assunto aqui
Material de apoio
Aula 4
Ordenação Topológica
Um pouco de teoria aqui
Material de apoio
- Código feito em sala de aula aqui
Aula 5
Caminho mais curto (1 - Dijkstra) Grafos sem ciclos negativos
Um pouco de teoria aqui
Material de apoio
- Código feito em sala de aula aqui
Aula 6
Caminho mais curto: Grafos COM ciclos negativos - BelmannFord
Caminho mais curto: Estratégia ALL PAIR SHORTEST PATH - FloydWarshall
Um pouco de teoria aqui
Material de apoio
- Código feito em sala de aula aqui
Aula 7
Árvores Geradoras
Um pouco de teoria aqui
Material de apoio
- Código feito em sala de aula aqui
Aula 8
Fundamentos de Arquivos
Um pouco de teoria aqui
Material de apoio
- este programa le caracteres do teclado e vai colocando-os no arquivo, um por um até que seja digitado enter...
- este programa le um arquivo texto, caracter por caracter..
- este programa le um arquivo txt argv[1], linha a linha, cria um outro arquivo texto arg[2] copiando o conteudo... ou seja,,, fazemos uma copia arquivo..
- este programa le o nome e a idade de pessoas e vai colocando cada um destes registros, espaçados por um spacebar, um em
cada linha.... quando o nome tiver dois caracteres ou menos, o programa para de inserir e mostra na tela todos os registros que foram armazenados nestes arquivo.
Ou seja, o programa tem que voltar para o inicio do arquivo e ler todos os registros...
- Faca um programa que crie uma imagem PGM no formato binario. Abra este arquivo com qq visualizador de imagens !
- Código feito em sala de aula aqui
Aula 9
Armazenamento Secundário
Um pouco de teoria aqui
Link Interessante (1)
Link Interessante (2)
Link Interessante (3)
Aula 10
Sistemas de Arquivos
Um pouco de teoria aqui
Link Interessante (1)
Link Interessante (1)
Aula 11
Organização de Arquivos
Um pouco de teoria aqui
Código para escrever arquivos de tamanho variável e fixo aqui
Aula 12
Organização de Arquivos 2 - Compressão e Desfragmentação
Um pouco de teoria aqui
Link interessante sobre Huffman
Uma boa implementação de Huffman aqui
Aula 13
Índices - Primários e Secundários
Um pouco de teoria aqui
Aula 14
Processamento Co-sequencial
Um pouco de teoria aqui
Aula 15
Árvores-B
Um pouco de teoria (1)
Um pouco de teoria (2)
Um pouco mais de teoria parte final
Codigo fonte para insercao aqui
Codigo REVISADO E CORRIGIDO (INSERCAO E REMOCAO) aqui
Opa....Codigo REVISADO E CORRIGIDO 2 (um pequeno erro na funcao sobeSucessor)
aqui
Projeto 1 - Grafos
- Descrição do projeto aqui
Projeto 2 - Arquivos
- Descrição do projeto aqui
- Tabela Inicial aqui
- Programa que vc pode usar para ler os dados da tabela inicia aqui
Projeto 3 - Árvore B
- Descrição do projeto aqui
[Índice]
Veja material PDF na aula 1 Está tudo lá
[Índice]
[Índice]
SEDGEWICK, R. Algorithms in C: part 5 -- graph algorithms, 3.ed., Addison-Wesley, 2002.
FOLK, M.J. File Structures. Addison-Wesley, 1992.
ZIVIANI, N. Projeto de Algoritmos, 3.ed. Cengage, 2010.
CORMEN, T.H.; LEISERSON, C.E.; RIVEST, R.L.; STEIN, C. Algoritmos: Teoria e Prática. Campus. 2002.
KRUSE, R. and LEUNG, B. Data Structures and Program Design In C (2nd Edition) 2nd Edition
[Índice]