• Nenhum resultado encontrado

Árvores. Árvores. INF01203 Estruturas de Dados. Árvores. Exemplos de Aplicações. Hierarquia de subordinação. Relacionamento Lógico.

N/A
N/A
Protected

Academic year: 2021

Share "Árvores. Árvores. INF01203 Estruturas de Dados. Árvores. Exemplos de Aplicações. Hierarquia de subordinação. Relacionamento Lógico."

Copied!
13
0
0

Texto

(1)

INF01203 – Estruturas de Dados

Árvores

Árvores

Constituem uma das estruturas mais importantes da área de computação, inclusive em aplicações A B C D E F G H J K I

Árvores

• Relacionamento Lógico

– Hierarquiaou Subordinação

• Onde:

– um subconjunto dos componentes é subordinado a outro A B C D E F G H J K I

Exemplos de Aplicações

• Hierarquia de

subordinação

– Classes e subclasses veículo

aéreo terrestre aquático

avião helicóptero particular coletivo motor vela remo

(2)

Exemplos de Aplicações

• Hierarquia de

subordinação

– Classes e subclasses

BEBIDA

REFRIGERANTE SUCO ALCOÓLICA

COCA GUARANÁ LARANJA UVA CERVEJA WHISKY GIN

BRAHMA SKOL BAVARIA DIET NORMAL DECAF

Exemplos de Aplicações

• Abstração de composição

BRASIL

RJ SC RS SP PR

POA CAXIAS GRAMADO CANELA S.MARIA TORRES

Exemplos de Aplicações

• Organograma de empresa

DIRETOR SUPERINTENDENTE DIRETOR FÁBRICA DIRETOR ADMINISTRATIVO DIRETOR COMERCIAL DEPTO MANUT. DEPTO CONTR. QUAL. DEPTO PRODUÇÃO

Exemplos de Aplicações

• Diretórios e arquivos

(3)

Exemplos de Aplicações

• Organização de informações

LIVROS

AUTOR1 AUTOR2 LYA LUFT AUTOR4 AUTOR5

AS PARCEIRAS A ASA ESQ. DO ANJO

AUTOR NACIONAL AUTOR ESTRANGEIRO TÉCNICOS VIAGEM ROMANCE

Exemplos de Aplicações

• Árvore de derivação

– compilador + a / * b c + d e

Expressão aritmética: ( a * b ) + ( c / ( d + e ) )

Exemplos de Aplicações

• Ordenação de valores

200 100 350 150 170 250 500 400 600

Formas de Representação

• Diagrama de inclusão

D

B

C

A

A

B

D

C

(4)

Formas de Representação

• Diagrama de barras

A...

B...

D...

C...

D

B

C

A

A

...B

... D

...C

Formas de Representação

• Níveis

• Aninhamento

1A; 1.1B; 1.1.1D; 1.2C

( A ( ( B ( D ) ) (C) ) )

D

B

C

A

Definição Formal

• Conjunto finito

T

de zero ou mais nós, tal que:

– número de nodos maior do que zero

• existe um nó denominado raizda árvore

• os demais nós formam m > 0conjuntos disjuntos S1, S2, ..., Sm, onde cada um destes é uma árvore (Sisão denominadas sub-árvores)

– número de nodos igual a zero

• árvore vazia A B C D E F G H J K I raiz

Terminologia

C

B

A

D

Raiz

(5)

Terminologia

A B C D E F G H J K I

Sub-árvores

Raiz

Terminologia

Irmão

X

Pai

Filho

Filho

= filha = descendente = sucessor

Pai

= mãe = ascendente = antecessor

Irmão

= irmã

Terminologia

Irmão

X

Pai

Filho

Ascendente/

Descendente

PRÓPRIO

Terminologia

• Grau

– número de sub-árvores do nodo

• Grau de saída

– número de filhos de um nodo

A B C D E F G H J K I grau 3 grau 2 grau 1

(6)

Terminologia

• Grau de uma árvore

– máximo entre os graus de seus nodos

A B C D E F G H J K I grau 3 grau 2 grau 1

Terminologia

• Nó de derivação (interno)

– nó com grau maior do que zero

A B C D E F G H J K I

Terminologia

• Nó folha (ou terminal ou externo)

– grau igual a zero

A B C D E F G H J K I

Terminologia

• Floresta

A B C D E F G H J K I X Y M N O P L Q S T R

(7)

Terminologia

• Caminho

– seqüência de nodos distintos, tal que existem sempre nodos consecutivos A B C D E F G H J K I

Terminologia

• Comprimento do caminho

– seqüência de nodos distintos, tal que

• existem sempre nodos consecutivos

• v1alcança vke vké alcançado por v1

A B C D E F G H J K I

v

1

v

k

Terminologia

• Nível

– número de ligações entre o nodo e a raiz, acrescido de uma unidade A B C D E F G H J K I

nível 1

nível 2

nível 3

nível 4

Terminologia

• Altura (profundidade)

– maior nível A B C D E F G H J K I

nível 4

(8)

Terminologia

• Árvore ordenada

– ordem das sub-árvores é relevante

A B A B

A B A B

C C

Definição Formal

• Conjunto finito

T

de zero ou mais nós, tal que:

– número de nodos maior do que zero

• existe um nó denominado raizda árvore

• os demais nós formam m > 0conjuntos disjuntos S1, S2, ..., Sm, onde cada um destes é uma árvore (Sisão denominadas sub-árvores)

– número de nodos igual a zero

• árvore vazia A B C D E F G H J K I raiz

Operações sobre as Árvores

• Dados

– árvore A

• Operações

– criação da árvore

– inserção de um novo nodo

• raiz • folha

• posição intermediária

– exclusão de um determinado nodo – acesso a um nodo

• determinar forma de percorrer a árvore

– destruição da árvore

TAD - operações

procedure inicializa(...);

// inicializa a árvore

procedure insere(...);

// insere um nodo na árvore

procedure remove(...);

// remove um nodo da árvore

function localiza (...): ...;

// busca o campo de informação de um nodo

procedure visita(...);

// percorre todos os nodos da árvore

procedure destroi(...);

(9)

Outras Operações

function raiz(...): ...;

// retorna a raiz da árvore

function pai(...): ...;

// retorna o nodo pai de um nodo n

function filho(...): ...;

// retorna o primeiro filho de um nodo n

function tamanho(...): inteiro;

// retorna o número de nodos em uma árvore

...

Árvores

• Como armazenar os nós de uma árvore?

• Como percorrer uma árvore?

• Como inserir novos nós?

• Como excluir nós?

A B C D E F G H J K I

Árvores Implementadas por

Contigüidade Física

Árvores – Contigüidade Física

• Os nodos da árvore são dispostos na memória

segundo uma

convenção

estabelecida

1 2 3 4 5 6 7 8 9 10 11 12 13 14 A 3 B 1 E 0 C 0 D 2 F 0 G 0

A

D

C

B

G

F

E

(10)

Árvores – Contigüidade Física

• várias formas

• definir uma estratégia • conhecer a estratégia

para realizar operações

A

D

C

B

H

F

E

G

I

1 A B C D E F G 2 3 4 5 6 7 A B E C D F G 1 2 3 4 5 6 7 em profundidade por níveis

Árvores – Contigüidade Física

1 2 3 4 5 6 7 8 9 10 11 12 13 A B C D E F G H / NODO 1 2 3 4 5 6 7 8 9 10 11 12 13 2 2 0 3 0 0 0 0 0 0 0 0 0 DESCENDENTES 2 arranjos árvore representada por níveis

B

C

A

D

E

G

F

H

Árvore Ternária

A

D

C

B

G

F

E

1 2 3 4 5 6 7 8 9 10 11 12 13

A B C D E * * * * * F G *

f1(i) = ?

f2(i) = ?

f3(i) = ?

(11)

TAD Árvore – contigüidade física

• Árvore representada por níveis

– aInfo: Array [1..n] de Info; – aFilhos: Array [1..n] de inteiro; – Descritor da árvore (descA)

• raiz: inteiro; // endereço da raiz no array • numNodos: inteiro;

• altura: inteiro; • grauMax: inteiro;

TAD - operações

procedure inicializa(var a: descA);

// inicializa a árvore

procedure insere(var a: descA; var a1: aInfo; var a2: aFilhos; dado: Info; pai: Info);

// insere um nodo na árvore

procedure remove(var a: descA; var a1: aInfo; var a2: aFilhos; dado: Info);

// remove um nodo da árvore

function localiza (a: descA; a1: aInfo; a2: aFilhos; dado: Info):inteiro;

// busca o campo de informação de um nodo e retorna o índice do array

procedure visita(a: descA; a1: aInfo; a2: aFilhos);

// percorre todos os nodos da árvore

procedure destroi(var a: descA);

// destrói a árvore

Análise – Contigüidade Física

• não constitui, em geral, uma boa solução

• dificuldades para

manipulação da estrutura

(hierarquia)

• geralmente eficiente em termos de espaço

ocupado

Análise – Contigüidade Física

• Exceção 01

– quando os nodos são processados exatamente na mesma ordem em que são armazenados

• Exceção 02

– quando, excetuando-se as folhas, que aparecem no mesmo nível, os demais nodos têm graus iguais ou muito próximos 1 2 3 4 5 6 7 A B C D E F G A 1 2 3 4 5 6 7 A B F C E λ G λ D λ B C F G E D A B F D G E C

(12)

Árvores Implementadas por

Encadeamento

Árvores - Encadeamento

A / C / / / / B / / / D / / E / / / / F / / / / G / / / / Endereços da raiz das sub-árvores Endereço da raiz

A

D

C

B

G

F

E

Árvores - Encadeamento

• Problema:

– árvore de grau arbitrário tem número elevado de

campos ociosos

A

C

B

E

F G

H

I

J

K

D

A / / / B / / / / / C / / / / / / D E / / / / / / F / / / / / / G / / / / / / H / / / / / / I / / / / / / J / / / / / / K / / / / / /

(13)

TAD Árvore – contigüidade física

• nodoA // Nodo da árvore

– dado: Info – filho1: ^nodoA – filho2: ^nodoA – ...

– filhoN: ^nodoA

• Descritor da árvore (descA)

– raiz: ^nodoA; // endereço da raiz no array – numNodos: inteiro;

– altura: inteiro; – grauMax: inteiro;

TAD - operações

procedure inicializa(var a: descA);

// inicializa a árvore

procedure insere(var a: descA; dado: Info; pai: Info);

// insere um nodo na árvore

procedure remove(var a: descA; dado: Info);

// remove um nodo da árvore

function localiza (a: descA; dado: Info):^nodoA;

// busca o campo de informação de um nodo e retorna o ponteiro para o nodo

procedure visita(a: descA);

// percorre todos os nodos da árvore

procedure destroi(var a: descA);

// destrói a árvore

Análise – Encadeamento

• problemas quando

grau dos nodos é

variado

– muitos elos vazios

• acesso somente através de raiz

– disciplina

para percorrer árvore

• inserção

e

remoção

são simplificadas

• hierarquia é intuitiva

esta forma de

Referências

Documentos relacionados

Levando em conta que o processo convencional de alvenaria para vedação das construções habitacionais (através de tijolos de barro), e da alvenaria estrutural, serem essencialmente

V - Fixar, quando for o caso, pró-labore ou verba de representação para o Diretor Presidente, o Diretor Administrativo, o Diretor Financeiro, o Diretor de Recursos Próprios, bem como

[r]

Esse artigo apresenta uma pesquisa bibliográfica, norteada pelo seguinte problema: o que os artigos publicados nos periódicos qualificados na área da educação

Portanto, a análise dos efeitos dos extratos de caferana no sistema nervoso central forneceu poucas evidências de ação farmacológica, contrastando com a

 Numéricos das das Propriedades Propriedades do do Ar Ar Úmido, Úmido, Cartas Cartas Psicrométricas, Psicrométricas, Processos Processos Psicrométricos, Psicrométricos,

tram resultados discrepantes em Fi, observando- -se que entre 32 híbridos testados, 31 pareceram ser monoembriônicos. Tais resultados são seme- lhantes aos obtidos no

No caso do Brasil, o poderio econômico dos meios é inseparável da forma oligárquica do poder do Estado, produzindo um dos fenômenos mais contrários à