B D. Árvores Ordenadas



Documentos relacionados
Árvore - Introdução. Teoria dos Grafos. Árvore Livre. Árvore Enraizada. Algumas Definições. Algumas Definições

Estruturas de Dados Aula 15: Árvores 17/05/2011

Estruturas de Dados. Prof. Gustavo Willam Pereira Créditos: Profa. Juliana Pinheiro Campos

FACULDADE CAMPO LIMPO PAULISTA MESTRADO EM CIÊNCIA DA COMPUTAÇÃO. Projeto e Análise de Algoritmos II Lista de Exercícios 2

Fila de Prioridade. Siang Wun Song - Universidade de São Paulo - IME/USP. MAC Estruturas de Dados

Complexidade de Algoritmos

Árvore Binária de Busca

DAS5102 Fundamentos da Estrutura da Informação

INF 1010 Estruturas de Dados Avançadas

AV1 - MA (b) Se o comprador preferir efetuar o pagamento à vista, qual deverá ser o valor desse pagamento único? 1 1, , , 980

BC1424 Algoritmos e Estruturas de Dados I. Aula 16: Árvores (introdução) Prof. Jesús P. Mena-Chalco. jesus.mena@ufabc.edu.br

Pedro Vasconcelos DCC/FCUP. Programação Funcional 15 a Aula Árvores de pesquisa

Figure 2 - Nós folhas de uma árvore binária representando caracteres ASCII

ESTRUTURAS DE DADOS II MSc. Daniele Carvalho Oliveira

Árvores Binárias de Busca

Métodos Computacionais. Árvores

Prof. Marcelo Nogueira

Trabalho 3: Agenda de Tarefas

Solução de problemas por meio de busca (com Python) Luis Martí DEE/PUC-Rio

Desenhando perspectiva isométrica

Prog A B C A e B A e C B e C A,B e C Nenhum Pref

Potenciação no Conjunto dos Números Inteiros - Z

EAD Árvore árvore binária

MD Sequências e Indução Matemática 1

Busca em Memória. Secundária

Usando o NVU Parte 2: Inserindo imagens

Cálculo em Computadores trajectórias 1. Trajectórias Planas. 1 Trajectórias. 4.3 exercícios Coordenadas polares 5

Filas com prioridade - Introdução (1)

CAPÍTULO 2. Grafos e Redes

1 ELEMENTOS DA CIRCUNFERÊNCIA

Linguagem C: Árvores Binarias

INSTITUTO SUPERIOR TÉCNICO Análise e Síntese de Algoritmos. RESOLUÇÃO DA REPESCAGEM DO 1 o TESTE

Apresentação de Dados em Tabelas e Gráficos

Sistemas de Apoio à Decisão

1. Introdução Definição Conceitos relacionados... 2

- UNIVERSIDADE DO VALE DO RIO DOS SINOS CIÊNCIAS EXATAS E TECNOLÓGICAS Curso: Informática / Ciência da Computação

Nome Nº turma Data / /

Conteúdo. Apostilas OBJETIVA - Ano X - Concurso Público 2015

CT-234. Análise de Algoritmos e Complexidade Estrutural. Carlos Alberto Alonso Sanches

[ \ x Recordemos o caso mais simples de um VLVWHPD de duas HTXDo}HVOLQHDUHV nas duas LQFyJQLWDV [ e \.

UFSC-CTC-INE INE Estruturas de Dados. Árvores. Prof. Ronaldo S. Mello 2002/2. Árvore

Gerência do Sistema de Arquivos. Adão de Melo Neto

PRINCÍPIOS DE INFORMÁTICA PRÁTICA OBJETIVO 2. BASE TEÓRICA. 2.1 Definição de Planilha Eletrônica

O princípio multiplicativo

UTILIZAÇÃO DA PLATAFORMA MOODLE PARA O ENSINO DE MATRIZES E DETERMINANTES

Casamento de Cadeias. Introdução. Introdução. Estrutura de Dados. Cadeia de caracteres: sequência de elementos denominados caracteres.

PROVA DISCURSIVA - PROFISSIONAL BÁSICO (FORMAÇÃO DE ANÁLISE DE SISTEMAS - DESENVOLVIMENTO) 2 a FASE

INF PROGRAMAÇÃO II LISTA DE EXERCÍCIOS 15

Unidade 5: Sistemas de Representação

SISTEMA DE SERVIÇOS DE INFRA-ESTRUTURA DA UFRGS

DISTRIBUIÇÃO DE FREQÜÊNCIAS

O método multicritérios de apoio à decisão

Algoritmos e Estrutura de Dados. Aula 13 Estrutura de Dados: Árvores de Pesquisa Binária Prof. Tiago A. E. Ferreira

Implementando uma Classe e Criando Objetos a partir dela

Estruturas de Dados I

Faculdade de Computação

Parametrização Itens para Movimentação

MÉDIA ARITMÉTICA MÉDIA PONDERADA MODA MEDIANA

ÁREAS DE ATUAÇÃO SENAC EM JUNDIAÍ. Inspeções Internas. João Gama Godoy. Técnico de Segurança do Trabalho. Senac

Árvores. Algoritmos e Estruturas de Dados 2005/2006

Algoritmos e Estrutura de Dados III. Árvores

Eng Civil Washington Peres Núñez Dr. em Engenharia Civil pela Universidade Federal do Rio Grande do Sul

Aula 5 Distribuição amostral da média

Exercícios Teóricos Resolvidos

INF1007: Programação 2 10 Árvores Binárias. (c) Dept. Informática - PUC-Rio 1

ILP - Introdução à Linguagem de Programação. Plano de estudo: - Constantes e variáveis. - Atribuindo valores às variáveis.

3 - CONJUNTO DOS NÚMEROS RACIONAIS

Algoritmos Estruturas Seqüenciais. José Gustavo de Souza Paiva

Como enviar e receber correio eletrónico utilizando o Gmail

Nível 1 IV FAPMAT 28/10/2007

ESTRUTURAS DE DADOS II

NOME: Nº. ASSUNTO: Recuperação Final - 1a.lista de exercícios VALOR: 13,0 NOTA:

Base de dados I. Uma base de dados é um simples repositório de informação relacionado com um determinado assunto ou finalidade

Os gráficos estão na vida

UNIVERSIDADE FEDERAL DE MATO GROSSO DO SUL PROGRAMA DE PÓS-GRADUAÇÃO EM EDUCAÇÃO MATEMÁTICA. Seleção Prova Escrita 06/02/2009

TÍTULO: COMPARAÇÃO ENTRE OS MÉTODOS DE BUSCA EM ESPAÇOS DE ESTADOS E O ALGORITMO DE DIJKSTRA

Capítulo 5: Aplicações da Derivada

INF 1007 Programação II

PROCEDIMENTOS PARA ORGANIZAÇÃO E ENTREGA DE DOCUMENTOS NOVOS

Árvores Binárias de Busca

Introdução à Engenharia de Computação

Experimento. Guia do professor. Otimização da cerca. Secretaria de Educação a Distância. Ministério da Ciência e Tecnologia. Ministério da Educação

ALGORITMOS E ESTRUTURAS DE DADOS CES-11 CES-11 CES-11

Introdução à Filogenética para Professores de Biologia

Resolvendo problemas com logaritmos

QUANTIFICADORES. Existem frases declarativas que não há como decidir se são verdadeiras ou falsas. Por exemplo: (a) Ele é um campeão da Fórmula 1.

Escalas. Antes de representar objetos, modelos, peças, A U L A. Nossa aula. O que é escala

Unidade 3: Personalizando o Excel *

Agrupamento de Escolas Eugénio de Castro 1º Ciclo. Critérios de Avaliação. Ano Letivo 2015/16 Disciplina MATEMÁTICA 3.º Ano

Organização e Arquitetura de Computadores I. de Computadores

EAD Árvore - representação usando listas ligadas

Manual / Apostila Sistemas Prosol. Pro Guias / Arquivo e Pro Gerenciador

Sistemas Lineares. Módulo 3 Unidade 10. Para início de conversa... Matemática e suas Tecnologias Matemática

Recuperação de Chave Secundária e Multilista

Trabalho e potência. 1º caso: a força F não é paralela a d. 2º caso: a força F é paralela a d. 3º caso: a força F é perpendicular a d

Resolução de Problemas

Trabalho Computacional

SOCIEDADE BRASILEIRA DE MATEMÁTICA MESTRADO PROFISSIONAL EM REDE NACIONAL PROFMAT

DAS5102 Fundamentos da Estrutura da Informação

Transcrição:

ÈUYRUHV 'HILQLomR Uma árvore 7 é um conjunto finito contendo um ou mais nós (vértices), onde existe um nó especial denominado UDL] e os demais estão organizados em 1 conjuntos disjuntos (T 1, T 2,..., T N ) denominados VXEiUYRUHV da raiz. Uma árvore pode ser definida como um grafo acíclico conexo onde um dos vértices chamado UDL]GDiUYRUH é diferenciado dos demais. 7HUPLQRORJLD C D E ƒ é o pai de, C e D ƒ, C e D são filhos de ƒ, C e D são irmãos ƒ é um ancestral de G ƒ G é um descendente de ƒ, D, F e G são nós folhas ƒ, C e E são nós internos ƒo grau do nó é 3 ƒo comprimento do caminho entre C e G é 2 ƒo nível de é 1 e o de G é 4 ƒ altura da árvore é 4 F G Árvores Ordenadas ƒ árvore é chamada de RUGHQDGD se a ordem entre os filhos de cada nó é considerada. C D D C

Árvores inárias Árvores cujo grau. Existe um nó UDL] e duas subárvores binárias denominadas subárvore GLUHLWD e subárvore HVTXHUGD ƒse uma árvore binária tem Q!0nós, então ela possui Q+1 subárvores vazias. Tipos Especiais de Árvores inárias ƒuma árvore binária é HVWULWDPHQWHELQiULD sse todos os seus nós têm 0 ou 2 filhos, ou seja, todo nó que não é folha tem as duas subárvores. ƒuma iuyruhelqiuldfrpsohwd possui profundidade d, é estritamente binária e todas as folhas estão no nível d; ƒuma iuyruhelqiuldtxdvhfrpsohwd é aquela na qual cada nó folha está no nível d (sua profundidade) ou d-1; e para cada nó k com um descendente direito no nível d, todos os descendentes esquerdos de k que forem folhas estão também no nível d. ltura de Árvores inárias ƒo processo de busca em árvores é normalmente feito a partir da raiz na direção de alguma de suas folhas. ƒnaturalmente, são de especial interesse as árvores com a menor altura possível. ƒse uma árvore 7 com Q!0 nós é completa, então ela tem altura mínima. Para ver isso observe que mesmo que uma árvore mínima não seja completa é possível torná-la completa movendo folhas para níveis mais altos. ƒ altura mínima de uma árvore binária com Q> 0 nós é K 1 + log 2 Q Implementando Árvores inárias com rrays ƒdado um nó armazenado no índice L, é possível computar o índice do nó filho esquerdo de L:2 L do nó filho direito de L: 2 L + 1 do nó pai de L: Ldiv 2 ƒpara armazenar uma árvore de altura K precisamos de um array de 2 1 (número de nós de uma árvore completa de altura K)

b a c 1 2 3 4 5 6 7 8 9 10 11 a b c d e f g h i j k 1 2 3 4 QtYHLV d e f g h i j k Implementando Árvores inárias com Ponteiros ƒvia-de-regra, árvores binárias são implementadas com ponteiros: Cada nó ; contém 3 campos: Dado: valor armazenado no nó *(VT:Ponteiro p/ árvore esquerda *'LU:Ponteiro p/ árvore direita Esq Val Dir Uma árvore é representada por um ponteiro para seu nó raiz (*Raiz) 7 a b c d e f Percurso de Árvores inárias ƒexistem essencialmente 3 ordens naturais de se percorrer os nós de uma árvore Pré-ordem: raiz, esquerda, direita Pós-ordem: esquerda, direita, raiz In-ordem: esquerda, raiz, direita

Percurso de Árvores M-árias Caminhamento em Largura Caminhamento em Profundidade Árvores inárias de usca ƒnuma árvore binária de busca, todos os nós na subárvore à esquerda de um nó contendo uma chave [são menores que [e todos os nós da subárvore à direita são maiores que [ [ < [ > [ 2SHUDo}HV Inserção de uma nova chave Remoção de uma chave Consulta a uma chave ƒ inserção ou a remoção de Qchaves toma tempo2(q 2 ) no pior caso ou 2(Qlog Q) se pudermos garantir que árvore tem altura logarítmica. Podemos garantir uma árvore de altura ótima para uma coleção de chaves se toda vez que temos de escolher uma chave para inserir, optamos pela mediana. Percebemos que a altura da árvore final depende da ordem de inserção. Árvores alanceadas Não podemos assegurar que árvores binárias de busca construídas segundo qualquer ordem de inserção sempre têm altura logarítmica. Sabemos que árvores completas garantem buscas utilizando não mais que log2 Q 1 comparações. Árvores VL delson Velsky e Landis introduziram em 1962 uma estrutura de árvore binária que é equilibrada com respeito às alturas das subárvores. Devido a natureza equilibrada das árvores VL, as recuperações, inserções e deleções podem ser efetuadas num tempo da ordem de log N onde N é o nº de nós.

'HILQLomR: a árvore vazia é de altura equilibrada. Seja T uma árvore binária de busca não vazia com TE e TD como subárvores esquerda e direita, então T terá altura equilibrada se: i) TE e TD forem equilibradas na altura ii) he - hd 1 onde he e hd são as alturas de TE e TD, respectivamente. 'HILQLomR: uma árvore VL é uma árvore binária de busca que é vazia ou cuja diferença de pesos entre as profundidades das subárvores esquerda e direita é, no máximo, igual a 1, e as subárvores direita e esquerda, por sua vez, também são árvores VL. Uma árvore VL sempre tem um certo grau de balanço, mas não precisa estar perfeitamente balanceada. Para restaurar o balanço após uma inserção ou remoção temos que reorganizar a árvore, através de operações de rotação. ([HPSORVGHÈUYRUHV$9/ ([HPSORVGHÈUYRUHV1mR$9/

Para manter essa invariante depois de alguma inserção ou remoção que desequilibre a árvore, utiliza-se operações de custo 2(1) chamadas URWDo}HV $OJRULWPR5RWDomR'LUHLWD5' p = Raiz; q = p->esq; h = q->dir; q->dir = p p->esq = h Raiz = q; Observação: considere Raiz como o ancestral mais próximo do nó inserido e que está desequilibrado. $OJRULWPR5RWDomR(VTXHUGD5( p = Raiz; q = p->dir; h = q->esq; q->esq = p p->dir = h Raiz = q; O processo de reequilibrar é conduzido essencialmente usando 4 tipos de rotação: EE, DD, ED e DE. Essas rotações são caracterizadas pelo ancestral mais próximo, $, do nó inserido, <, cujo fator de equilíbrio passa a ser +2 ou -2. ssim sendo, temos: ((: novo nó Y inserido na subárvore esquerda da subárvore esquerda de. (': novo nó Y inserido na subárvore direita da subárvore esquerda de. '': novo nó Y inserido na subárvore direita da subárvore direita de. '(: novo nó Y inserido na subárvore esquerda da subárvore direita de. ([HUFtFLRV 1) Construa uma árvore VL inserindo, passo a passo, os nós 20, 30, 40, 35, 50, 31, 16, 32, 33. Registre na prova cada passo, o tipo de rotação utilizada se necessário, bem como o cálculo do balanceamento. 2) Dados os caminhamentos: Pré-ordem: DGCEHIF In-ordem: DGHEICF Pós-ordem: GDHIEFC Construa a árvore binária correspondente. (2.0)