Estruturas de Dados - alged.webnode.com · Estruturas de Dados são construções de uma linguagem...
Transcript of Estruturas de Dados - alged.webnode.com · Estruturas de Dados são construções de uma linguagem...
Estruturas de Dados
Prof.: Carlos Alberto
Página da Disciplina: http://alged.webnode.com/
E-mail: [email protected]
Estruturas de dados - referências 1. JUNIOR, D. P.; NAKAMITI, G. S.; BIANCHI, F.; FREITAS, R. L. de;
XASTRE, L. A. Estrutura de Dados e Técnicas de Programação.
Editora Campus/Elsevier, 2014.
2. CELES, W.; CERQUEIRA, R.; RANGEL, J. L. Introdução a estrutura de
dados. Rio de Janeiro: Elsevier, 2004.
3. EDELWEISS, N.; GALANTE, R. Estruturas de Dados. Porto Alegre:
Bookman, 2009. (COMPLEMENTAR).
4. ASCENCIO, A. F. G.; ARAUJO, G. S. de. Estruturas de Dados:
algoritmos, análise da complexidade e implementações em Java e
C/C++. São Paulo: Pearson, 2010. (COMPLEMENTAR).
Abstração de Dados
Um processo é uma sequência finita de passos que
transformam uma matéria-prima num determinado produto
final.
Os dados processados representam uma abstração da
realidade, ou seja, são características selecionadas de
entidades do mundo real, necessárias para a solução de um
determinado problema.
Quando a entrada de um processo é abstrata, apresentando-
se em forma de valores ou símbolos, temos um contexto
denominado processamento de dados.
Abstração de Dados
Exemplo: Cálculo do perímetro de uma circunferência,
onde o valor do raio (r) é fornecido como entrada.
Atenção: dado e informação são conceitos relativos;
Devido à importância da abstração para o processamento de
dados em computadores, duas questões são fundamentais:
Como representar a abstração da realidade no computador?
Como representar o conhecimento necessário para manipular
essa abstração?
Tipos de Dados Abstratos
Tipo dados abstrato (TDA) é um modelo matemático
definido por um conjunto de valores e por um conjunto de
operadores que atuam sobre esses valores;
Por ser um modelo matemático, sua definição não leva em
conta como os valores serão armazenados na memória do
computador nem se preocupa com o tempo gasto para
efetuar operações com esses valores;
Para usar um TDA para resolver problemas no computador, é
preciso transformá-lo em um tipo de dados concreto;
Tipos de Dados Abstratos
A transformação de um TDA em um tipo de dados é chamada
implementação;
Durante a implementação é definida a estrutura de
armazenamento dos valores e são projetados os algoritmos
que efetuam as operações;
Geralmente, nenhuma implementação é capaz de representar
um TDA completamente;
Tipos de Dados
A unidade básica de memória no computador é chamada bit
(binary digit);
Uma grande quantidade de bits agrupados e devidamente
interpretados são capazes de armazenar uma enorme
quantidade e variedade de informações;
Num programa, áreas de memória para armazenamento de
dados são representadas por variáveis;
A forma como os bits numa variável são agrupados,
interpretados e manipulados pelo computador é definida pelo
seu tipo de dados.
Tipos de Dados
Tipo de dado
Definição do conjunto de valores (domínio) que
uma variável pode assumir.
Exemplo:
Inteiro
<..., -2, -1, 0, 1, 2, ...>
Lógico
<verdadeiro, falso>
Tipos de Dados
Tipos básicos (primitivos)
Inteiro, real, lógico e caracter
Tipos estruturados
Arranjos (vetores e matrizes)
Registros
Conjuntos
Tipos definidos pelo usuário
Tipos de Dados
Exemplo: para calcular o perímetro de uma circunferência a
partir do seu raio, precisamos usar variáveis do tipo real:
Tipos de Dados
Felizmente, a maioria das linguagens de programação oferece
um conjunto básico de tipos de dados predefinidos (inteiro,
real, caracter e lógico);
As linguagens de programação fornecem mecanismos que
permitem criar tipos de dados a partir de outros predefinidos
(ex.: vetores e registros)
Tipos e estruturas de dados
Aplicação:
Representação dos funcionários e alunos de uma
faculdade
Tipo de dado? ? ? ?
Tipos e estruturas de dados
Relacionamento de hierarquia
Como representar com os tipos de uma linguagem de
programação?
Diretor
Chefe
do Depto A
Chefe
do Depto B
Professores Funcionários
Alunos
Professores Funcionários
Alunos
Tipos e estruturas de dados
Tipos de dados básicos
Fornecidos pela linguagem de programação
Estruturas de dados
Estruturação conceitual dos dados
Reflete um relacionamento lógico entre dados, de acordo
com o problema considerado
Estruturas de dados
À medida que evoluímos nos tipos de programas que
projetamos surge a necessidade de armazenar as
informações;
Somente utilizando os tipos de dados torna-se inviável,
devido a pequena quantidade de informações que uma
variável armazena;
Daí a necessidade da existência dos tipos de dados compostos
ou estruturados, ou simplesmente: Estrutura de Dados;
Estruturas de dados
Uma estrutura de dados é um meio para armazenar e
organizar dados com o objetivo de facilitar o acesso e
as modificações.
Estruturas de Dados são construções de uma linguagem de
programação que agregam um ou mais elementos de
dados para formar um tipo de dado que armazena uma
quantidade maior de informações.
Estruturas de dados
As estruturas se diferem umas das outras pela disposição
ou manipulação de seus dados.
A disposição dos dados em uma estrutura obedece a
condições preestabelecidas e caracteriza a estrutura.
os elementos que uma estrutura de dados armazena podem
ser:
homogêneos (ex.: vetores)
heterogêneos (ex.: registro).
Estruturas de dados
Exemplos de estruturas de dados:
Listas lineares
a b c d
• Relação de ordem entre os dados
• Linear - sequencial
Ex:
Aplicação: empresa
Problema: dados dos funcionários – cada nó um funcionário
Estruturas de dados
Exemplos de estruturas de dados:
Árvores
• Relação de subordinação entre os dados
Ex:
Aplicação: empresa
Problema: organograma de funções
a
c b
h g f e d
l k j i
Estruturas de dados
Estruturas de dados incluem as operações para a
manipulação de seus dados;
Operações básicas:
Criação da estrutura de dados
Inclusão de um novo elemento
Remoção de um elemento
Acesso a um elemento
Destruição da estrutura de dados
Estruturas de dados
Solução para uma aplicação:
1. Identificar as relações lógicas
existentes entre os dados,
relevantes ao problema
2. Identificar as
operações
sobre estes dados
Criação
Manutenção
Inserção de componente
Remoção de componente
Alteração de componente
Consulta
Destruição
Outras
Ordem linear
pai / filhos
...
Estruturas de dados
Programa: manipula dados dos alunos matriculados
Operações sobre os dados dos alunos:
– inserir os nomes
– buscar os nomes dos alunos e armazenar na memória
– pesquisar os nomes ordenados para folha de frequência
– alterar os nomes
– excluir os nomes
Exemplo: Folha de frequência
Estruturas de dados
A área de estruturas de dados tem dois objetivos básicos e
complementares:
Teórico: especificar TDAs e determinar que classes de
problemas podem ser resolvidas com eles.
Prático: implementar TDAs, isto é, criar representações
concretas de seus valores e projetar algoritmos para efetuar
operações com elas.
Estruturas de dados
As estruturas de dados podem ser subdivididas em:
Estáticas e Dinâmicas.
Estáticas
Não oferecem suporte adequado para a inserção e remoção de
elementos dinamicamente;
São baseadas na utilização de formas primitivas de estruturação
de dados disponibilizadas pela linguagem de programação.
Exemplo: Vetores e registros.
Estruturas de dados
As estruturas de dados podem ser subdivididas em:
Estáticas e Dinâmicas.
Dinâmicas
Em geral, oferecem suporte adequado para a inserção e a
remoção de elementos;
Alocam dinamicamente memória para o armazenamento de
cada elemento, portanto não são estruturas pré-dimensionadas.
Exemplo: listas e árvores;