Árvores Prof. Dr. rer. nat. Daniel Duarte Abdala DAS 5102 – Fundamentos da Estrutura da Informação 1.

Slides:



Advertisements
Apresentações semelhantes
Árvores CC/EC/Mestrado Teoria dos Grafos ‏ 1.
Advertisements

Aula T-09 – BCC202 Listas (Parte 1) Túlio Toffolo www. decom. ufop
Celso C. Ribeiro Caroline T. Rocha
AULA 8 Profa. Sandra de Amo GBC053 – BCC
Marco Antonio Montebello Júnior
UFES CC/EC/Mestrado Teoria dos Grafos Árvores. UFES CC/EC/Mestrado Teoria dos Grafos Árvores Grafo Acíclico: não possui ciclos.
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ESTRUTURAS DE DADOS AVANÇADAS Aula /08/2011 Professor Leomir J. Borba-
Estruturas de Dados Árvores Binárias
Conceitos e algoritmos
Estrutura de Dados e Algoritmos e Programação e Computadores II
Algoritmos BUSCA E INSERÇÃO
Introdução aos Métodos de Acesso AULA 7 – Parte II Profa. Sandra de Amo GBC053 – BCC
Série de Exercícios.
Inteligência Artificial
Árvore Binária - altura máxima A: Inserção de 1, 2, 3, 4, 5, 6 e 7 Pior caso: O(n)
Árvores.
1 MergeSort Seja uma lista A de n elementos. O algoritmo consiste das seguintes fases Dividir A em 2 sub-listas de tamanho n/2 Conquistar: ordenar cada.

Arquivos Seqüenciais Inhaúma Neves Ferraz
Pesquisa em Memória Primária – Árvores de Busca
David Menotti Algoritmos e Estruturas de Dados I DECOM – UFOP
Pesquisa em Memória Primária – Árvores de Busca
SEMINÁRIO DE ALGORITMOS
Árvores Introdução e Aplicações Árvores de Busca Binária Fundamentos
Classificação e Pesquisa de Dados
AED – Algoritmos e Estruturas de Dados
Árvores e Árvores Binárias
Métodos de Classificação por Seleção: HeapSort
Estruturas de Dados II Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Árvore Binária & AVL Equipe: Felipe Pontes Gustavo Márcio
Inteligência Artificial
Robson Godoi / Sandra Siebra
Indexação de Arquivos Página de rosto.
Prof. Ernesto Lindstaedt
Fundamentos sobre Árvores
Algorítmos e estrutura de dados III
Árvore Binária de Busca
Buscas em Grafos Prof. André Renato 1º Semestre/2012
Algoritmos e Estruturas de Dados II
Pesquisa em Memória Primária
Árvores binárias de pesquisa com balanceamento
INF 1010 Estruturas de Dados Avançadas
Estruturas de Dados com Jogos
Árvore de Pesquisa Memória Secundária Engenharia de Computação - UFG.
Árvores Binárias de Pesquisa
Algorítmos e estrutura de dados III
Algorítmos e estrutura de dados III Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Algorítmos e estrutura de dados III
Universidade Católica de Pelotas Mestrado em Ciência da Computação
Algoritmos e Estrutura de Dados III
Introdução e Busca Cega
Rotação Simples e Dupla Katia Guimarães
Listas de Prioridades Em muitas aplicações, dados de uma coleção são acessados por ordem de prioridade A prioridade associada a um dado pode ser qualquer.
Fundamentos de Programação
1 A COMPUTAÇÃO MODERNA Valdemar W. Setzer Depto. de Ciência da Computação da USP
Árvore Binária de Busca
José Augusto Amgarten Quitzau

Árvores Binárias Profa. Patrícia A. Jaques Luiz Gonzaga Jr
Estruturas de Dados Aula 15: Árvores
Prof. Hilton Cardoso Marins Junior ÁRVORES BINÁRIAS.
© 2011 Pearson Prentice Hall. Todos os direitos reservados.slide 1 © 2011 Pearson Prentice Hall. Todos os direitos reservados.slide 1 © 2011 Pearson Prentice.
Prof. Hilton Cardoso Marins Junior

Introdução a Árvores e Árvores Binárias
Árvores de Busca Binária
Árvores (introdução) Anjolina Grisi de Oliveira Obs: vários slides foram cedidos por Adolfo Almeida Duran (UFBA)
Árvores e Árvores Binárias
Árvores Binárias e Árvores AVL Katia Guimarães. Árvores Binárias e Árvores AVL Katia S. Guimarães
BANCO DE DADOS II Árvore de Dados. FATEC - GUARATINGUETÁ Professor: Eduardo Barbosa Adiel Lemos Ana Renata Bruno Michael Jéssica Fernanda Layla Monique.
Transcrição da apresentação:

Árvores Prof. Dr. rer. nat. Daniel Duarte Abdala DAS 5102 – Fundamentos da Estrutura da Informação 1

Motivação Estrutura de dados muito utilizada – Permite a representação de dados de maneira hierárquica; – Fornece maneiras eficientes de busca; Quais são seus usos comuns? – Manipular dados hierárquicos – Manipular listar ordenadas de dados – Em algoritmos de roteamento de pacotes 2

Motivação - exemplo Objetivo: Ir de Floripa para Blumenau! 3 Floripa São José Tubarão Biguaçu Joinville Palhoça Garopaba Blumenau

Árvore de Busca 4 Floripa BiguaçuSão JoséGaropaba PalhoçaBiguaçuTubarão Blumenau Garopaba

Árvores - Grafos A BC FEDG A B C FE D G A B C FE D G É uma árvore – Conectado – acíclico – Não orientado Não é uma árvore – Conectado – Cíclico – Não orientado É uma arborecência – disconectado – acíclico – Não orientado 5 É uma árvore nada mais é que um tipo particular de grafo. Para que um grafo seja uma árvore o mesmo deve ser: – Conectado, – acíclico, – Não orientado A B C E D A BCED

Nível 2 Nível 1 Nó raiz Nomenclatura A C FEDG Nível 0 altura da árvore B Nós internos Folhas B E Nó pai Nó filho 6

Árvores Binárias A C FEDG B Subárvore esquerda Subárvore direita 7 Todo nó possui exatamente dois nós filhos – Exceto os nos folha, que devem possuir exatamente 0 filhos É muito útil para modelar situações em que precisam ser tomadas decisões bidirecionais em cada ponto de um processo

Árvores Binárias - Definições Árvore Binária Completa de nível d – Todas as folhas estejam no nível d Se contiver m nós no nível l, ela conterá no máximo 2m nós no nível l+1 Uma árvore binária completa de nível d contém exatamente 2 l nós em cada lível l entre 0 e d (profundidade d com exatamente 2 d nós no nível d 8

Árvores Binárias - Definições Número total de nós 9 Por indução Também é possível calcular o nível d de uma árvore binária completa se o número t n for conhecido. note que em geral, log 2 xx ≈

Árvore Binárias Quase Completas A B C F DE G A B H D E I D G J F K A B H D E I D G F 1.Todas as folhas da árvore devem estar localizadas no nível d ou no nível d-1; 2.Para cada nó nd na árvore com um descendente direto no nível d, todos os descendentes esquerdos de nd que forem folhas estiverem também no nível d. 10

Numeração de nós de árvores binárias A B H D E I D GF Os nós de uma árvore binária quase completa podem ser numerados 1 para a raiz Filho esquerdo = dobro do n. do pai Filho direito = dobro + 1 do n. do pai A numeração ajuda na implementação como será visto na aula prática (implementação por vetores) Facilita na localização de itens ABDDEFGHI

Exemplo: encontrar repetições 12 Encontrar todas as repetições numa lista de números – Comparar cada número com todos os que o prescedem – Por meio de uma árvore binária

Encontrar Repetições – Árvore Binária 13 Inserção: – pegue o primeiro elemento da lista e o faça a raiz da árvore binária; – Para cada elemento seguinte: Comparar com o nó raiz a.Se igual, acusar repetição b.Se menor, examinar a subárvore esquerda c.Se maior, examinar a subárvore da direita d.Se vazio, inserir o elemento sendo examinado

Percurso de Árvores Binárias 14 Não existe uma ordem “natural” para se percorrer uma árvore binária Existem três formas básicas: – Ordem Anterior (percurso em profundidade) – Ordem (ou em ordem simétrica) – Ordem Posterior

Algorítmos Recursivos 15 ordemAnterior(no) IMPRIMA no.valor SE no.esq ≠ null ENTAO ordemAnterior(no esq) SE no.dir ≠ null ENTAO ordemAnterior(no.dir) emOrdem(no) SE no.esq ≠ null ENTAO emOrdem(no.esq) IMPRIMA no.valor SE no.dir ≠ null ENTAO emOrdem(no.dir) ordemPosterior(no) SE no.esq ≠ null ENTAO emOrdem(no.esq) SE no.dir ≠ null ENTAO emOrdem(no.dir) IMPRIMA no.valor

Exemplo – ordemAnterior 16 A B DE C GF 5.H (4.a) 6.I (4.b) 7.E (3.b) 8.C (2.b) a.ant(F) b.ant(G) 9.F (8.a) 10.G (8.b) IH 1.ant([A,B,C,D,E,F,G,H,I])(init) 2.A a.ant([B,D,E,H,I]) b.ant([C,F,G]) 3.B (2.a) a.ant([D,H,I]) b.ant([E]) 4.D (3.a) a.ant([H]) b.ant([I])

1.ord([A,B,C,D,E,F,G,H,I])(init.) 2.ord([B,D,E,H,I]) 3.ord([D,H,I]) 4.ord([H]) 5.H 6.D 7.ord(I) 8.I 9.B 10.ord([E]) Exemplo – emOrdem 17 A B DE C GF IH 11.ord([C,F,G]) 12.ord([F]) 13.F 14.C 15.ord([G]) 16.G

Revisitando... Encontrar Repetições A ordem dos elementos na lista pode levar a criação de uma árvore não balanceada

Laboratório Desta Semana 19 Implementar uma árvore Binária – Usando arrays como estrutura de armazenamento – Usando ponteiros – Resolver o problema da identificação de números repetidos usando árvores binárias – Implementar os métodos de percurso Modificar a árvore binária para que seus nós possam armazenar diferentes tipos de dados (números e operadores)

Bibliografia da Aula A. A. Tenenbaum, Y. Langsam, M. J. Augenstein. Estruturas de Dados Usando C. Makron Books Ed pp. 303—406. (cap. 5) R. Sedegewick. Algorithms in C. Princeton University. Addison-Wesley Publishing Company pp 35— 50. (cap. 4) 20