ASPER
CHRISTUS
UNIBRATEC

UNIPE

CHRISTUS
Estrutura, Pesquisa e Ordenação de Dados: 80h
email: christus@fredbf.com


1. EMENTA
 

Listas lineares e suas generalizações: listas encadeadas, pilhas e filas. Listas generalizadas. Aplicações de listas. Algoritmos para pesquisa e ordenação em memória principal e secundária. Organização de arquivos. Técnicas de recuperação de informação. Árvores e suas generalizações: árvores binárias, árvores de busca, árvores balanceadas (AVL), árvores B e B+. Aplicações de árvores.


2. OBJETIVOS
 

- Introduzir o conceito de tipo de dados (TAD), evidenciando aspectos de implementação, aplicacões e complexidade; 
- Apresentar estruturas de dados básicas (listas lineares, pilhas, filas, árvores);
- Apresentar métodos de busca e classificação de dados em memória principal utilizando estruturas de dados básicas.


3. ANDAMENTO DA DISCIPLINA
 
Aula 1
03/08

UNIDADE I
Apresentação da disciplina e uso de um compilador de C

(1) Conteúdo: apresentação da disciplina, compilador DevC++ e visão geral do Ansi C
(2) Jogo dos sapos - documento excel com jogo de raciocínio lógico. Contribua com o site e envie links de jogos de raciocínio ao professor (christus@fredbf.com)
(3) Leitura: (a) UFMG: aulas 1, 2, 3 e 4; (b) UFPB: cap1
(4) Exercícios: (a) UFMG: lista1 e lista2; (b) UFPB: cap1; (c) ExercíciosDesafio1

Aula 2
05/08

UNIDADE I
Nivelamento de C: vetores e strings

(1) Conteúdo: (a) exercícios de revisão; (b) vetores e (3) strings;
(2) Leitura: (a) UFMG: aula 5; (b) UFPB: seções 3.1 e 3.7
(3) Exercícios: (a) UFMG: lista4; (b) UFPB: cap3;
(4) Problema do scanf em C: usar o fflush(stdin) da biblioteca stdio.h (ler mais);

Aula 3
10/08

UNIDADE I
Nivelamento de C: tipos estruturados de dados

(1) Conteúdo: (a) estruturas (b) typedef; (c) inicializando valores; (d) passagem de parâmetro; (e) atribuição; (f) vetor de estruturas;(g) vetor de estrutura como parâmetro
(2) Leitura: (a) UFMG: aula 11; (b) UFPB: seção 4.1
(3) Exercícios: (a) UFMG: lista3; (b) UFPB: cap4; (c) ExercíciosDesafio2

Aula 4
12/08

UNIDADE I
Nivelamento de C: ponteiros e alocação dinâmica

(1) Conteúdo: (a) exerícios de revisão (b) ponteiros; (c) alocação dinâmica de memória
(2) Leitura: (a) UFMG: aula 6; (b) UFPB: seção 2.1
(3) OBS: greve de ônibus

Aula 5
17/08

UNIDADE I
Listas Encadeadas

(1) Conteúdo: (a) motivação (b) definição; (c) operações;
(2) Leitura: (a) capítulo 4 de VILLAS; (b) seção 4.2 de TENEMBAUM
(3) OBS: a Aula4 ocorreu nesse dia
Aula 6
19/08

UNIDADE I
Listas Encadeadas: a aula 5 ocorreu nesse dia

Aula 7
21/08
UNIDADE I
Exercícios de Listas Encadeadas
Aula9
24/08

UNIDADE I
Listas Encadeadas

(1) Conteúdo: (c) operações

Aula 10
26/08

UNIDADE I
Listas Encadeadas

(1) Conteúdo: (e) lista circular; (f) lista duplamente encadeada;
(2) Fazer Exercícios de Fixação 1 (EF1_ListasLigadas.pdf);

Aula 11
31/08

UNIDADE I
Filas e Pilhas
(1) Conteúdo: (e) lista circular; (f) lista duplamente encadeada;
(2) Fazer Exercícios de Fixação 1 (EF2_PilhasFilas.pdf);

Aula 12
02/09

UNIDADE I
Professor faltou

Aula 13
04/09

UNIDADE I
Exercícios Filas e Pilhas

07/09
FERIADO
Aula 14
09/09
UNIDADE I
Filas e Pilhas
Aula 15
14/09
PROVA 1
Aula 16
16/09

UNIDADE II
Algoritmos de Busca

(1) Conteúdo: (a) motivação; (b) busca linear; (c) busca binária
(2) Correção e divulgação da nota da Prova 1;
(3) OBS: não houve aula (palestra Jogos Digitais Eletrônicos)
Aula 17
21/09

UNIDADE II
Algoritmos de Busca

(1) Conteúdo: (a) motivação; (b) busca linear; (c) busca binária
(2) Correção e divulgação da nota da Prova 1;

Aula 18
23/09

UNIDADE II
Algoritmos de Ordenação

(1) Conteúdo: (a) auto-avaliação; (b) ordenação de dados; (c) ordenação por troca: bubble sort
(2) OBS: todos os alunos faltaram, a aula não aconteceu

Aula 19
28/09

UNIDADE II
Algoritmos de Ordenação

(1) OBS: a aula passada ocorreu aqui

Aula 20
30/09

UNIDADE II
Algoritmos de Ordenação

(1) Conteúdo: (a) auto-avaliação; (b) insertionSort; (c) selectionSort

Aula 21
05/10

UNIDADE II
UNICHRISTUS

Aula 22
07/10

UNIDADE II
Algoritmos de Ordenação

(1) Conteúdo: (a) auto-avaliação; (b) quickSort; (c) mergeSort

12/10
FERIADO
Aula 23
14/10

UNIDADE II
Tabela Hash

(1) Conteúdo: (a) auto-avaliação; (b) tabela hash; (c) tipos de funções hash; (d) colisão; (e) algoritmo de Cichelli; (f) conclusões
Aula 24
16/10

UNIDADE II
Exercícios de Tabela Hash

Aula 25
19/10

UNIDADE II
Tabela Hash: tratamento de colisões

Aula 26
21/10

UNIDADE II
Exercícios de Fixação 3 
(EF3_BuscaOrdenacaoHash.pdf), no laboratório 706

Aula 27
26/10


PROVA 2

Aula 28
28/10

UNIDADE III
Árvores: conceitos e representação

02/11
FERIADO
Aula 29
04/11

UNIDADE III
Árvores: percorrendo

Aula 30
09/11

UNIDADE III
Árvores Binárias de Busca

Aula 31
11/11

UNIDADE III
Árvores Binárias de Busca

Aula 32
16/11

UNIDADE III
Árvores AVL

Aula 33
18/11

UNIDADE III
Árvores AVL

Aula 34
23/11

UNIDADE III
Exercícios de Árvores

Aula 35
25/11

UNIDADE III
Grafos: conceitos e representação

Aula 36
30/11

UNIDADE III

Grafos: Fluxo Máximo
Aula 37
02/12

UNIDADE III

Grafos: Fluxo Máximo
Aula 38
04/12

UNIDADE III

Exercícios de Grafos
Aula 39
07/12

UNIDADE III
Grafos: Ordenamento Topológico

Aula 40
09/12

UNIDADE III

Grafos: Ordenamento Topológico
14/12
PROVA 3



3. LISTAS DE EXERCÍCIOS
 


4. BIBLIOGRAFIA
 
  • TENENBAUM, A.; Langsam, Y.; Augenstein, M.: Estruturas de dados usando C. São Paulo: Bookman. (LIVRO TEXTO)
  • VILLAS, Marcos Vianna et AL. Estrutura de dados: conceitos e técnicas de implementação. Rio de Janeiro: Campus. (LIVRO TEXTO)
  • DROZDEK, Adam. Estruturas de Dados e Algoritmos em C++.São Paulo: Pioneira Thomson Learning (LEITURA COMPLEMENTAR)
  • VELOSO, Paulo et al. Estrutura de dados. Rio de Janeiro: Campus (LEITURA COMPLEMENTAR)
  • Curso de Linguagem C da UFMG
  • Material interessante:
  • Material do Prof. Ulysses Guimarães (UFPB): 

5. COMPILADORES
 
  • DevC++ - compilador C/C++, versão 4.9.9.2, gratuito (9MB)
  • TurboC++ - compilador C/C++ antigo, versão 1.0.1, mas com help completo (3MB)