Escolar Documentos
Profissional Documentos
Cultura Documentos
(1) http://en.wikipedia.org/wiki/Data_structure
(2) http://en.wikipedia.org/wiki/Abstract_data_type
Estruturas de Dados
Escolha cuidadosa da estrutura permite
algoritmos melhores
Uma boa estrutura permite menos
processamento
São implementadas por tipos primitivos,
compostos, ponteiros e operações
Diferentes tipos, diferentes funções
B-trees usadas em BD
Estruturas de Dados
Escolher bem a estrutura de dados é primordial
Grandes sistemas são difíceis de implementar e
precisam de performance
Algoritmos se adequam às estruturas
Às vezes, escolhe-se as estruturas pelos seus
algoritmos
Tarefas chaves necessárias precisam de um estrutura
específica
Em ambos os casos, a escolha da estrutura é
fundamental
Estruturas de Dados
Escolha da estrutura de dados é
fundamental
Muitos métodos de planejamento e
linguagens seguem esta idéia
Muita linguagens permitem reuso das
estruturas de dados
Através de interfaces
Linguagens Orientadas a Objetos
usam classes
Estruturas de Dados
Modernas linguagens de programação
fornecem muitas estruturas de dados nas
bibliotecas padrão
C++, Java, C#
Dúvida: estruturas de dados são
implementações ou interfaces?
Depende da perspectiva
Interface entre duas funções
Implementação de métodos de acesso ao
armazenamento dos dados
Exemplos de Estruturas de
Dados
Arrays
Registros
Listas Encadeadas
Árvores binárias
Tipos Abstratos de Dados
(TAD)
Conjunto de dados e operações sobre
os dados
É abstrato porque é independente de
implementação
Definições
Matemática
Programada como uma interface
A interface fornece um construtor e
operações sobre o construtor
Separação interface e
implementação
Em um computador, tipos abstratos
de dados usam interface
Protegendo a implementação
Usuários de TAD se preocupam com a
interface
Implementação pode mudar no futuro
TAD e Estruturas de
Dados
Existe uma distinção entre tipos abstratos de dados e
estruturas de dados usadas na sua implementação
Exemplo: Tipo abstrato de dados Lista
Representações
Array ou lista encadeada
Lista é um tipo com operações
(inserir, remover, etc)
Lista encadeada é uma estrutura de dados baseada em
ponteiros
Pode ser usada para representar uma lista
Lista encadeada é usada para representar TAD Lista
Os termos se confundem
Exemplos de TAD
Fila
Pilha
Lista
Árvore Binária de Busca
Grafos
Exercício de fixação
Procurar dois outros tipos de dados
não citados e fazer uma pequena
apresentação de 5 minutos. Grupo de
no máximo 4 componentes.
Estruturação da
Informação
Computação tem várias interpretações
Computadores maravilhosos (pessoa
leiga)
Programas interessantes (usuário)
Dados que são processados (especialista)
Computadores armazenam e
informações e programas
Estruturação da Informação
Importância de estruturar a
informação
Lista telefônica e fichário em ordem
alfabética
Desenvolvimento de
programas
Passos para desenvolver uma solução
para um problema
Especificação do problema
(Planejamento)
Projeto em alto nível (Projeto)
Análise de alternativas (Projeto)
Refinamento e codificação (Codificação)
Verificação do comportamento (Teste)
Desenvolvimento de
programas
Passo 1
Entender as relações existentes entre os
dados do problema
Passo 2
Descobrir quais alterações serão feitas
nos dados (alto nível)
Passo 3
Sugerir soluções variadas
Desenvolvimento de
programas
Passo 4
Refinar as transformações do passo 2
para as funcionalidades da linguagem
Passo 5
Avaliação do programa quanto ao
desempenho
Pontos importantes
Estruturas de dados, operações e
representação
Desenvolvimento de
programas
Estruturas de dados
Relações lógicas entre os dados
Operações
Modos de manipular as estruturas
Estruturas de representação
Modo de armazenar os dados no
computador
Preservam as relações e operações
Desenvolvimento de
programas
Programa
Algoritmo que manipula dados
Estruturas de dados adequadas
Programas corretos, eficazes, seguros e
eficientes.
Exercícios
Qual regra descreve os seguintes
fatos:
Carros esperando em um lava-jato
Badejas na entrada de uma lanchonete
Páginas de um calendário de mesa
Trabalhos na fila de impressão
Exercícios
Implemente um conjunto cuja regra
para escolher um elemento
‘específico’ seja selecionar um
elemento aleatoriamente no conjunto.
Todos os elementos possuem a
mesma probabilidade.
Resumo
Introdução
Conceitos FIFO e LIFO
Estruturas de Dados
Conceitos e utilidades
Tipos de dados abstratos
Conceitos e utilidades
Referências
Data structure
http://en.wikipedia.org/wiki/Data_structure
Abstract data type
http://en.wikipedia.org/wiki/Abstract_data_
type
Veloso, Paulo e outros. Estruturas de
Dados. 4ed. 1988.
Van Wyk, Christopher J. Data structures
and C programs. 1988.