Você está na página 1de 63

ESTRUTURA DE DADOS

INTRODUO S
ESTRUTURAS DE DADOS

Prof. Dr. Daniel Caetano


2014 - 2
Objetivos
Conhecer o professor e o curso
Compreender o que so
estruturas de dados e sua
importncia
Relembrar conceitos de
algoritmos
Apresentao
Quem o
professor?
Vamos
comear?
Quem Quem Lista de Presena
Professor Informaes de Contato
Daniel Caetano prof@caetano.eng.br

Nome Completo CPF Matrcula


Fulano 012.345.678-90 201101123456

Beltrano 012.345.678-91 201101123457

Cicrano 012.345.678-92 201101123458


PLANO DE ENSINO
E DE AULA
Plano de Ensino
Disponvel no WebAula

1. Entre no SIA
2. CAMPUS VIRTUAL
3. MINHAS DISCIPLINAS
PRESENCIAIS
4. Clique no NOME DA
DISCIPLINA
5. Selecione PLANO DE
ENSINO
Plano de Aula
28/07 0. Apresentao 13/10 9. Filas Circulares
04/08 1. Funes 20/10 10. Estruturas
11/08 2. Vetores e Laos 27/10 11. Ponteiros
18/08 Exerccios 03/11 Exerccios
25/08 3. Listas Sequenciais 10/11 12. Listas Encadeadas
01/09 4. Listas: Ordenao 17/11 13. Pilhas Encadeadas
08/09 5. Listas: Ordenao 24/11 14. Filas Dinmicas
15/09 7. Pilhas 01/12 P2
22/09 7. Pilhas 08/12 Vista de Prova
29/09 P1 16/12 P3
06/10 8. Filas
TRABALHOS, DATAS E
CRITRIO DE APROVAO
Trabalhos, Datas e Aprovao
Trabalho Valor C.H. Entrega
AE1 (Grupo / Individual) 2,0 na AV1 8h 31/08 (SIA)
P1 (Individual / Com Consulta*) 8,0 na AV1 2h 29/09 (Aula)
AE2 (Grupo / Individual) 0,5 na AV2 8h 05/10 (SIA)
AE3 (Grupo / Individual) 0,5 na AV2 8h 19/10 (SIA)
AE4 (Grupo / Individual) 0,5 na AV2 8h 16/11 (SIA)
AE5 (Grupo / Individual) 0,5 na AV2 8h 30/11 (SIA)
P2 (Individual / Sem Consulta) 8,0 na AV2 2h 01/12 (Aula)
P3 (Individual / Sem Consulta) 8,0 na AV3 2h 15/12 (Aula)

(*) Consulta nos moldes da folha de referncia fornecida no site da disciplina.


Trabalhos, Datas e Aprovao
Ateno ao prazo de entrega das AE1 a AE5...
As Atividades Estruturadas sero entregues
pelo SIA e sero penalizadas em 1/5 de seu
valor por dia de atraso.
Mesmo que j no valham nota, elas
precisam ser entregues, pois valem parte
significativa da carga-horria!
As atividades so grandes, no marque
bobeira!
Trabalhos, Datas e Aprovao AV1
Prova P1 caneta, incluindo o preenchimento
do cabealho, ganha: 0,25 na P1
Entregando a folha de consulta (dentro do
padro) com a prova, ganha: 0,25 na P1
A nota da AE1 ser somada nota da prova P1
para compor a mdia AV1.
0,0 a 8,0 0,0 a 2,0

AV1 = P1 + AE1
0,0 a 10,0
Trabalhos, Datas e Aprovao AV2
A nota das AE2 e AE5 (total de 0 a 2) ser
somada nota da P2 para compor a nota AV2.

0,0 a 2,0 0,0 a 8,0

AV2 = AE2a5 + P2
0,0 a 10,0
Trabalhos, Datas e Aprovao AV3
A nota da AV3 composta apenas da nota da
avaliao P3! Cuidado!

0,0 a 10,0

AV3 = P3
0,0 a 10,0
Trabalhos, Datas e Aprovao Final
A = Maior nota entre { AV1 , AV2 , AV3 }
B = Segunda maior nota entre { AV1 , AV2 , AV3 }

Critrios de Aprovao (TODOS precisam ser atendidos)

1) A 4,0
2) B 4,0
3) A + B 12,0 (Mdia 6,0!)
4) Frequncia 75% (No mximo 4 faltas!)
ATENO: Se voc tiver mais que uma nota abaixo de 4,0,
ainda que o SIA aponte uma mdia maior que 6,0, voc
estar REPROVADO!
BIBLIOGRAFIA E FONTES
DE INFORMAO
Bibliografia
Biblioteca Virtual
Estrutura de Dados

Material do Curso
Estrutura de Dados Srie Livros Didticos Informtica
da UFRGS, Volume 18 (1 Edio, 2009)
Edelweiss e Galante
Artmed / Bookman
ISBN: 9788577803811
Bibliografia
Mais Livros!
Estrutura de Dados: algoritmos, anlise
da complexidade e implementaes em
Java e C/C++ (1 Edio, 2011)
Ascncio e Arajo
Editora Pearson Education
ISBN: 9788576058816 BIBLIOTECA VIRTUAL!
Lgica de Programao: a construo de algoritmos e
estruturas de dados (3 Edio, 2005)
Forbellone e Eberspacher
Editora Pearson
ISBN: 9788576050247 BIBLIOTECA VIRTUAL!
Bibliografia
timo apoio!

C Completo e Total (3 Edio, 1996)


Herbert Schildt
Makron Books / Pearson
ISBN: 8534605955
Material Didtico
Deve Ser Solicitado no SIA

1. Entre no SIA
2. SECRETARIA VIRTUAL
3. SOLICITAO DE
MATERIAL
Bibliografia
Notas de Aula
e Apresentaes

http://www.caetano.eng.br/
FORMAO DE
GRUPOS DE TRABALHO
Formao de Grupos
Por que formar grupos?
Quantos alunos?
No mnimo 4 alunos
No mximo 8 alunos
Entregar, na aula que vem, lista de NOMES de
cada aluno, indicando o NOME DA EQUIPE.
Ateno:
Elejam UM responsvel por subir os dados no SIA,
que deve fornecer o e-mail para o professor!
VOLTANDO PROGRAMAO NORMAL:

CONTEXTUALIZAO
Contextualizao
Continuao de Algoritmos
Qual a melhor forma de implementar?
Relao Disciplina x Curso
Desenvolvimento de Software
Anlise / Projeto de Software
Sistemas Operacionais
Banco de Dados
Empregabilidade?
Criatividade e senso critico
Domnio da programao
COMO ERAM OS
ALGORITMOS, MESMO?
O que so Algoritmos
Toda tarefa complexa pode ser subdividida
Tarefas menores e mais simples
Exemplo: fabricar vinho para venda
Plantar a uva
Colher a uva
Amassar a uva
Deixar fermentar
Engarrafar
Distribuir para a venda
O que so Algoritmos
O procedimento para realizar uma tarefa
complexa chama-se algoritmo

Um algoritmo envolve:
Tarefas/Processos
Decises
Fluxograma
Forma grfica tradicional
Incio e fim de algoritmo
Processo (trabalho do computador)

Entrada de dados (leitura)


Sada de dados (impresso)

Tomada de deciso

Sentido do fluxo de dados


Fluxograma
Forma grfica tradicional
Incio e fim de algoritmo
Processo (trabalho do computador)

Entrada de dados (leitura)


Sada de dados (impresso)

Tomada de deciso

Sentido do fluxo de dados


Exemplos de Fluxograma
Incio
Incio

N
N1, N2

FALSO VERDADEIRO
M = N1 * N2 N6,0

M
Reprovou Passou

Fim

Fim
Exemplos de Fluxograma

Incio

C=1

C <= 10
V C

F
C=C+1

Fim
Exemplos de Linguagem C++
#include <iostream>
using namespace std;
main()
{
int C;
C = 0;
while ( C < 1000 )
{
cout << Sei programar!;
cout << endl;
C = C + 1;
}
}
Exemplos de Linguagem C++
#include <iostream>
using namespace std;
main() // Imprime contador
{
int C;
C = 0;
while ( C < 1000 )
{
cout << C << ;
cout << Sei programar!;
cout << endl;
C = C + 1;
}
}
Exemplos de Linguagem C++
#include <iostream>
using namespace std;
main()
{
int N1, N2, R, C;
cout << Digite um No.: ;
cin >> N1;
cout << Digite outro No.: ;
cin >> N2;
C = 0;
while ( C <= N1 )
{
R = C * N2;
cout << C << * << N2 << = << R << endl;
C = C + 1;
}
}
ESTRUTURA DE DADOS?
HEIN?!
Estrutura de Dados
Programa = Algoritmo + Dados
Resoluo de Problema: abstrao
Cadastro de Clientes
Quais dados so importantes?
A idade do cliente importante?
A cor do cabelo do cliente importante?
Qual o algoritmo usar?
Como encontrar um cliente?
Como inserir um novo cliente?
Estrutura de Dados
Programa = Algoritmo + Dados
Resoluo de Problema: abstrao
Cadastro de Clientes
Quais dados so importantes?
A idade do cliente importante?
A cor do cabelo do cliente importante?
Qual o algoritmo usar?
Como encontrar um cliente?
Como inserir um novo cliente?
Estrutura de Dados
O que um dado digital?
O que o diferencia de lixo digital?
Sua organizao
Sabemos como encontr-los
E isso permite...
Busca
Remoo
Insero...

Organizao Desempenho
NO DIA-A-DIA
Estrutura de Dados no Dia-a-Dia
Representar a organizao de uma empresa
1 presidente, 1 vice-presidente, 1 diretor de
vendas e 1 de criao, este ltimo com 2
subdiretores?
Presidente

Vice-
Presidente

Diretor de Diretor de
Vendas Criao

Subdiretor 1 Subdiretor 2
Estrutura de Dados no Dia-a-Dia
Como representar a bibliografia do curso?
Estrutura de Dados: algoritmos, anlise da
complexidade e implementaes em Java e C/C++
Lgica de Programao: a construo de algoritmos e
estruturas de dados
Estrutura de Dados Srie Livros Didticos Informtica
da UFRGS, Volume 18
Estrutura de Dados no Dia-a-Dia
Como o motoboy organiza as pizzas?
Estrutura de Dados no Dia-a-Dia
Como as pessoas esperam no banco?
Estrutura de Dados no Dia-a-Dia
Como representar os trajetos possveis em
uma companhia area?
TIPOS DE ESTRUTURA
DE DADOS
Tipos de Estrutura de Dados
Lineares x No-lineares
Lineares
Tipos de Estrutura de Dados
Lineares x No-lineares 1. Elemento bem definido
ltimo elemento bem definido
Lineares Elementos intermedirios: um
antecessor e um sucessor
Tipos de Estrutura de Dados
No-lineares

Presidente

Vice-
Presidente

Diretor de Diretor de
Vendas Criao

rvore: relao hierrquica


Subdiretor 1 Subdiretor 2
Grafo: relao qualquer
Tipos de Estrutura de Dados
No-lineares

fundamental
identificar a melhor
Presidente

estrutura para cada


Vice-
Presidente problema!
Diretor de Diretor de
Vendas Criao

rvore: relao hierrquica


Subdiretor 1 Subdiretor 2
Grafo: relao qualquer
FORMAS DE
ARMAZENAMENTO E
MANIPULAO DE
ESTRUTURA DE DADOS
Armazenamento de Estruturas
Duas maneiras de armazenar
Sequencial (ou contgua)
Espao pr-alocado
Tamanho pr-definido
Encadeada (ou ligada)
Tamanho inicialmente desconhecido
Alocao medida da necessidade
Neste curso
Estruturas lineares sequenciais e encadeadas
Armazenamento de Estruturas
Iniciaremos com as sequenciais...
Qual o tipo de varivel de C/C++ que serve
para guardar, sequencialmente na memria,
muitos dados iguais?
Vetores
Vamos comear com uma lista de nmeros
Que operaes vocs conseguem imaginar?
O que gostaramos de poder fazer com uma lista?
Manipulao de Estruturas
Imagine uma lista de notas
Inicialmente vazia
Inserir notas
Remover notas
Buscar notas...
Como realizar essas tarefas?

Existiria muita diferena se tivssemos uma lista


de alunos? Ou uma lista de rendimentos?
Manipulao de Estruturas
Inserir, Remover e Buscar sero semelhantes
para qualquer lista
Sempre que precisarmos inserir, o cdigo o
mesmo
Que tal criarmos um algoritmo chamado
inserir, por exemplo?
Sempre que precisarmos inserir um valor, bastar
solicitar que o computador execute o algoritmo
inserir
Manipulao de Estruturas
Esses algoritmos com nome recebem o
nome de funes
Antes de estudarmos as estruturas em si...
Vamos aprender a implementar funes!
Vamos nos familiarizar com vetores!
PERGUNTAS?
EXERCCIOS DE FIXAO
Exerccios de Fixao
1) Qual a melhor estrutura de dados para
representar o sistema de pastas e arquivos do
sistema operacional?

a) Pilha
b) Fila
c) rvore
d) Grafo
Exerccios de Fixao
2) Os navegadores web armazenam as pginas
visitadas de maneira que ao apertar o boto
voltar a ltima pgina visitada seja
apresentada, retirando este endereo da
estrutura. Considerando s esse aspecto, qual a
melhor estrutura de dados?
a) Pilha
b) Fila
c) rvore
d) Lista
CONCLUSES
Resumo
Planos de Ensino e Aula
Datas de avaliaes e critrios de aprovao
Fontes de informao
O que so dados e estrutura de dados
Operaes e usos comuns de estruturas

Funes?
O que so?
Para que servem?