• Nenhum resultado encontrado

Estrutura de Dados II_Conceitos_Basicos

N/A
N/A
Protected

Academic year: 2021

Share "Estrutura de Dados II_Conceitos_Basicos"

Copied!
48
0
0

Texto

(1)

ESTRUTURAS DE DADOS II

Conceitos

William Malvezzi, MSc

ESTRUTURAS DE DADOS II

Conceitos

William Malvezzi, MSc

(2)

Conceitos Básicos

Introduz conceitos necessários ao entendimento das

diferentes estruturas a serem vistas ao longo deste curso

(3)

Conceitos Básicos

Tipos de dados e

Estruturas de dados

(4)

Tipo de dado

definição do conjunto de valores (domínio) que uma

variável pode assumir

Ex: inteiro

< … -2, -1, 0, +1, +2, … >

lógico

< verdadeiro, falso >

Tipos de Dados

(5)

Tipos de Dados

Tipos básicos (primitivos)

– inteiro, real, lógico e caractere

Tipos de estruturados (construídos)

– arranjos (vetores e matrizes)

– registros

– sequências (conjuntos)

– referências (ponteiros)

Tipos definidos pelo usuário

(6)

Aplicação:

representação dos funcionários e alunos

de uma Faculdade

– Tipo de dado ? ? ? ? ?

Tipos e Estruturas de Dados

(7)

Diretor

Chefe

do Depto A

Chefe

do Depto B

Professores

Funcionários

Alunos

Professores

Funcionários

Alunos

Como representar com os tipos de uma Linguagem de Programação?

Relacionamento de hierarquia

Estruturas de Dados

(8)

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

Tipos e Estruturas de Dados

(9)

Estruturas de Dados a serem vistas:

– Listas lineares

– Árvores

Estruturas de Dados

(10)

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

Lista linear

(11)

a

c

b

h

g

f

e

d

l

k

j

i

• Relação de subordinação entre os

dados

Ex:

aplicação: empresa

problema: organograma de funções

Árvore

(12)

Operações sobre 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

(13)

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

...

Operações

Solução para uma Aplicação:

(14)

Disciplina: Estruturas de Dados

Semestre: 2009-2 Turma: A

Professor: Maria Silva

matrícula

nome

...

...

...

Ana

Maria

Pedro

XXXX

ZZZZ

YYYY

Programa: manipula dados dos alunos matriculados

Exemplo: Folha de frequência

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

(15)

Conceitos Básicos

(16)

dados

operações

TAD

Tipos Abstratos de Dados

(17)

Um TAD é uma forma de definir um novo tipo de dado

juntamente com as operações que manipulam esse

novo tipo de dado

TADs

(18)

Separação entre conceito (definição do tipo) e implementação das

operações

Visibilidade da estrutura interna do tipo fica limitada às operações

Aplicações que usam o TAD são denominadas clientes do tipo de dado

Cliente tem acesso somente à forma abstrata do TAD

Tipos abstratos de dados

(19)

Um TAD (em LP) é um tipo de dado que satisfaz as condições:

– A representação ou a definição do tipo e as operações sobre variáveis desse

tipo estão contidas numa única unidade sintática

• MÓDULO

– A representação interna do tipo (a implementação) não é visível de outras

unidades sintáticas, de modo que só as operações oferecidas na definição

do tipo podem ser usadas com as variáveis desse tipo

Tipos abstratos de dados

(20)

Satisfazem as propriedades de

- encapsulamento: definição isolada de outras unidades do programa

- invisibilidade e proteção: representação do tipo deve ser acessada somente no

ambiente encapsulado

A LP deve possibilitar

– ambiente encapsulado

– proteção de dados

– interface para acesso

– operações básicas

dados

operações

Propriedades dos TADs

(21)

Possibilidade de utilização do mesmo TAD em diversas aplicações diferentes

Possibilidade de alterar o TAD sem alterar as aplicações que o utilizam

REUTILIZAÇÃO

Vantagens de TADs

(22)

Código do cliente do TAD não depende da implementação

Segurança:

– clientes não podem alterar a representação

– clientes não podem tornar os dados inconsistentes

cliente

cliente

cliente

usa

TAD

Vantagens de TADs

(23)

Projeto de um TAD

Envolve a escolha de operações adequadas para uma determinada

estrutura de dados, definindo seu comportamento

Dicas para definir um TAD:

– definir pequeno número de operações

– conjunto de operações deve ser suficiente para realizar as

computações necessárias às aplicações que utilizarem o TAD

– cada operação deve ter um propósito bem definido, com

comportamento constante e coerente

(24)

Exemplo de TAD: DATA

Par (v,o)

– v – tripla formada por dia-mês-ano

– o – operações aplicáveis sobre o tipo DATA

• verificar se a data é válida

• calcular o dia da semana de uma determinada data

• calcular a data do Carnaval de um determinado ano

• ...

(25)

Exemplo de TAD: DATA

Estrutura de representação

Data = registro

Dia: inteiro

Mês: inteiro

Ano: inteiro

fim registro

(26)

Exemplo de TAD: DATA

Operações

• Procedimento InicializaData

Entradas: Dia, Mês, Ano (inteiro)

Saída: D(Data)

• Função AcrescentaDias

Entradas: D(Data), Dias (inteiro)

Retorno: (Data)

• Função EscreveExtenso

Entradas: D (Data)

Retorno: (lógico)

(27)

x

y

Modelo

Par ordenado (x,y)

Dados representando o modelo

– Coordenada X

– Coordenada Y

Exemplo de TAD: representação de um ponto

(28)

Operações:

cria:

operação que cria um ponto, alocando

memória para as coordenadas x e y;

libera:

operação que libera a memória alocada

por um ponto;

acessa:

operação que devolve as coordenadas

de um ponto;

atribui:

operação que atribui novos valores às

coordenadas de um ponto;

distancia:

operação que calcula a distância

entre dois pontos.

x

y

Exemplo de TAD: representação de um ponto

(29)

Operações:

cria (x,y)

libera (ponto P)

acessa (ponto P)

atribui (ponto P, x,y)

distancia (ponto P1, ponto P2)

x

y

Exemplo de TAD: representação de um ponto

(30)

Conceitos Básicos

(31)

Identificação dos Dados

Abstração do mundo real

MODELO LÓGICO

Relacionamentos entre os dados

DADOS + OPERAÇÕES

MODELO FÍSICO

Alternativas de implementação

Modelagem dos dados

Mundo

Real

(32)

Mundo

Real

Objetos reais sem omissão de detalhes

Níveis de abstração

(33)

Mundo

Real

Objetos reais sem omissão de detalhes

Selecionadas aquelas informações relevantes

para as aplicações consideradas

Depto, Emp, Veículo, etc.

Informações relevantes

para o sistema

Níveis de abstração

(34)

Mundo

Real

Objetos reais sem omissão

de detalhes

Selecionadas

aquelas

informações

relevantes

para

as

aplicações

consideradas

Depto, Emp, Veículo, etc.

Componentes e operações dos diversos

Tipos de Dados, abstraídos detalhes e

implementação:

CADASTRO (insere, remove, ... )

Informações relevantes

para o sistema

Tipos Abstratos de

Dados (TAD)

Níveis de abstração

(35)

Mundo

Real

Objetos reais sem omissão de detalhes

Selecionadas aquelas informações relevantes

para as aplicações consideradas

Depto, Emp, Veículo, etc.

Componentes e operações dos diversos Tipos

de Dados, abstraídos detalhes e

implementação:

CADASTRO (insere, remove, ... )

Informações relevantes

para o sistema

Tipos Abstratos de

Dados (TAD)

Estrutura Lógica

e Algoritmos

Esquemas de representação dos dados e

detalhamento das operações definidas sobre

tais esquemas

Níveis de abstração

(36)

Mundo

Real

Objetos reais sem omissão de detalhes

Selecionadas aquelas informações relevantes

para as aplicações consideradas

Depto, Emp, Veículo, etc.

Componentes e operações dos diversos Tipos

de

Dados,

abstraídos

detalhes

e

implementação:

CADASTRO (insere, remove, ... )

Informações relevantes

para o sistema

Tipos Abstratos de

Dados (TAD)

Estrutura Lógica

e Algoritmos

Estrutura Física

e Programas

Esquemas de representação dos dados e

detalhamento das operações definidas sobre

tais esquemas

Representação física dos dados e programas

que implementam as operações (o nível físico

pode corresponder a tipos primitivos de uma

linguagem de programação)

Níveis de abstração

(37)

Escolha da representação física

– Preservar as relações lógicas

– Permitir operações através de procedimentos simples e eficientes

As operações definidas sobre os dados

influenciam decisivamente na escolha da

representação física a ser adotada

Modelo físico

(38)

Alternativas de Representação Física

Contiguidade física

Encadeamento

A posição do componente na

estrutura lógica determina sua

posição na estrutura física

posições aleatórias - ordem explícita

posicional - implícita

(39)

Diversas alternativas de estruturas físicas podem implementar

uma mesma estrutura lógica

Vetores

Matrizes

Estruturas

Ponteiros

Modelo físico

(40)

A escolha pela melhor alternativa de estrutura física depende de

alguns fatores

– volume de dados

– número (quantidade) de dados

• fixo ou variável

– operações realizadas sobre os dados

Modelo físico

(41)

Folha de frequência

Exemplo

Disciplina: Estruturas de Dados

Semestre: 2009-2 Turma: A

Professor: Maria Silva

matrícula

nome

...

...

...

Ana

Maria

Pedro

XXXX

ZZZZ

YYYY

(42)

Folha de frequência

Modelo Lógico

• Estrutura abstrata para manter o relacionamento entre os dados

Exemplo

(43)

Folha de frequência

Modelo Lógico

• Estrutura abstrata para manter o relacionamento entre os dados:

LISTA

Ana

Maria

Pedro

Exemplo

(44)

Folha de frequência

Modelo Físico

• Implementa a estrutura lógica em uma estrutura de

armazenamento (estrutura física) em uma linguagem de

programação

Exemplo

(45)

Folha de frequência

Modelo Físico

• Implementa a estrutura lógica em uma estrutura de

armazenamento (estrutura física) em uma linguagem de

programação: ARRAY

vetor de alunos

Ana

Maria

Pedro

Exemplo

(46)

Folha de frequência

Programa

: manipula dados a respeito

dos alunos matriculados

Operações

:

• insere

• consulta

• excluir

• altera

• calculaMedia

Exemplo

Disciplina: Estruturas de Dados

Semestre: 2009-2 Turma: A

Professor: Maria Silva

matrícula

nome

...

...

...

Ana

Maria

Pedro

XXXX

ZZZZ

YYYY

(47)

Listas Lineares

Árvores

formas de estruturar os dados

opções para armazenamento físico

algoritmos de manipulação

(48)

Final

Referências

Documentos relacionados

palavra ao Presidente, que procedeu à leitura do parecer da comissão avaliadora, composta 98.. pelos professores Roberto de Souza Salgado (Presidente – EEL),

As condições naturais, o tipo de colonização, a evolução das técnicas agrícolas adotadas e as políticas públicas aplicadas foram determinantes para o desenvolvimento

Em relação aos compostos obtidos com o ácido p-nitrobenzóico, apenas um se apresentou como dímero, o térbio em DMF, apresentando de forma atípica, quatro ligações do íon

Therefore, the aim of this study was to identify the species of Colletotrichum associated with chayote anthracnose in different production poles of Brazil, based on DNA sequence

In this study, we describe the fish demersal assemblage along the continental shelf of the northeast Brazilian coast 5°-9°S, specifically the ecological descriptors and the

compra dele, no que diz respeito aos gastos relacionados com alimentos e motivos de escolha do ponto de venda, é chegada a hora de entendermos o conhecimento dele acerca de

desenvolvimento deste trabalho têm as seguintes metas a serem atingidas: 1 Confirmar que o cenário apresentado depois do Plano1 Diretor de Reforma do Aparelho do Estado 1997, CPI