Slides:



Advertisements
Apresentações semelhantes
Marco Antonio Montebello Júnior
Advertisements

Listas Lineares Estrutura que permite representar um conjunto de dados de forma a preservar a relação de ordem linear. Uma lista linear é composta de nós,
Estruturas de Dados Árvores Binárias
Estruturas de Dados Arvores
Algoritmos BUSCA E INSERÇÃO
Série de Exercícios.
MC 202 – Estruturas de dados
Árvore Binária - altura máxima A: Inserção de 1, 2, 3, 4, 5, 6 e 7 Pior caso: O(n)
Árvores.
David Menotti Algoritmos e Estruturas de Dados I DECOM – UFOP
Pesquisa em Memória Primária
Pesquisa em Árvores Digitais
David Menotti Algoritmos e Estruturas de Dados I DECOM – UFOP
David Menotti Estruturas de Dados I DECOM – UFOP
HeapSort Filas de Prioridade – Heap
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
Pesquisa em Memória Primária
David Menotti Estruturas de Dados I DECOM – UFOP
SEMINÁRIO DE ALGORITMOS
André Lopes Pereira Luiz Carlos Barboza Júnior
Árvores Introdução e Aplicações Árvores de Busca Binária Fundamentos
Ordenação Facilitar e aumentar a eficiência das operações de pesquisa sobre esses dados Pode ser crescente ou decrescente A seqüência de entrada, normalmente,
Ordenação Facilitar e aumentar a eficiência das operações de pesquisa sobre esses dados Pode ser crescente ou decrescente A seqüência de entrada, normalmente,
Classificação e Pesquisa de Dados
Árvores Binárias de Pesquisa (ABP)
Métodos de Classificação por Seleção: HeapSort
Estruturas de Dados II Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
CAP-223 Árvore através de uma Árvore Binária A BCDE FGHIJK A BC D E FGHIJK.
Robson Godoi / Sandra Siebra
Listas Encadeadas.
Indexação de Arquivos Página de rosto.
Árvores Equilibradas Sumário Splay B-tree Vermelho-Preto AA e BB
Prof. Ernesto Lindstaedt
Fundamentos sobre Árvores
Algoritmos e Estruturas de Dados II
Pesquisa em Memória Primária
Árvores binárias de pesquisa com balanceamento
Á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.
Algoritmos e Estrutura de Dados III
1. Se este nó é raiz de uma árvore QuasiEquilibrada de ordem k, e
Árvores Balanceadas Liliane Rose Benning Salgado.
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.
© Copyright 2007 Algoritmos e Estruturas de Dados - Todos os direitos reservados Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto.
Árvore Binária de Busca
Árvores B Obs: Uma árvore 2-3 é uma árvore B de ordem 1.
Educação Profissional Técnica de Nível Médio Curso Técnico de Informática
Árvores Prof. Dr. rer. nat. Daniel Duarte Abdala DAS 5102 – Fundamentos da Estrutura da Informação 1.

Árvores Binárias Profa. Patrícia A. Jaques Luiz Gonzaga Jr
Estruturas de Dados Aula 15: Árvores
– Aula 20 Adaptado por Reinaldo Fortes para o curso de
© 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
Programação II Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -

Introdução a Árvores e Árvores Binárias
Árvores de Busca Binária
1 de outubro de Árvores de Busca e Árvores AVL Parte 1 Katia Guimarães.
Árvores (introdução) Anjolina Grisi de Oliveira Obs: vários slides foram cedidos por Adolfo Almeida Duran (UFBA)
Adriana Libório Fernandes Lins Arthur Cavalcanti Alem Átila Valgueiro Malta Moreira Flavio Juvenal da Silva Júnior Gustavo Cauê Silva Botelho Matheus Bispo.
INE5408 Estruturas de Dados Árvores B - Estrutura e peculiaridades -Algoritmos de inserção, pesquisa e deleção.
UNIVERSIDADE FEDERAL DE MINAS GERAIS Árvores Cristiano Arbex Valle Vinicius Fernandes dos Santos
Árvores.
Transcrição da apresentação:

Árvore Binária de Busca

Árvore Binária de Busca construída de tal forma que, para cada nó: nós com chaves menores estão na sub-árvore esquerda nós com chaves maiores (ou iguais) estão na sub-árvore direita a inserção dos nós da árvore deve satisfazer a essa propriedade 84

Árvore Binária de Busca para a busca de uma chave v na árvore binária de busca: primeiro compare com a raiz se menor, vá para a sub- árvore esquerda se maior, para a sub-árvore direita aplique o método recursivamente 85

Árvore Binária de Busca 6 4 9 3 5 8 10 2 86

Árvore Binária de Busca a cada passo, garante-se que nenhuma outra parte da árvore contém a chave sendo buscada o procedimento pára quando o nó com v é encontrado senão, chega-se a NULL na busca binária nós usamos uma árvore binária para descrever a seq. de comparações feitas buscando em um array ==/== aqui nós construimos uma estrutura de dados de registros, conectados com ponteiros e usamos isso para a busca 87

Árvore Binária de Busca busca_arvore_nao_recursivo (v, pt) { do { if (v < pt->info) pt = pt-> esq; else pt = pt-> dir; }while (pt != NULL) && (v != pt->info); return(pt); } 88

Inserindo em Árvore Binária de Busca Para inserir um nó na árvore: fazer uma busca com insucesso alocar um novo nó é necessário saber por qual nó se chegou a NULL será o pai do novo nó 90

Inserindo em Árvore Binária de Busca 6 4 9 3 5 8 10 2 Inserindo o 9 91

Inserindo em Árvore Binária de Busca 6 4 9 3 5 8 10 7 2 Inserindo o 7 91

Inserção Árvore Binária de Busca insere_árvore (int valor, tipo_nó * pt) { tipo_nó * pai; do{ pai = pt ; if (valor < pt->chave) pt = pt ->esq ; else if ( valor > pt-> chave) pt = pt->dir; } while(pt != NULL) && (pt->chave != valor); if (pt == NULL){ pt = aloca(); pt ->chave = valor; pt->esq = NULL; pt->dir = NULL; if (v < pai->chave) pai ->esq = pt ; else pai ->dir = pt ; return(pt); } 93

Inserção Árvore Binária de Busca a árvore está classificada se percorrida da forma correta (pre, pos ou em-ordem?) as chaves aparecem em ordem se lidas da esquerda para a direita podemos ordenar uma sequência como se fosse uma série de inserções o programa tem apenas os ponteiros para se preocupar qual a diferença tempo de execução dos algoritmos Þ dependente da forma da árvore em média para chaves inseridas de forma randômica em torno de 2 lnN comparações e no pior caso N comparações 94

Remoção em Árvore Binária de Busca até então, vimos que a implementação da operação de inserção é simples a remoção de um elemento já é mais complexa remoção de um nó folha os ponteiros esquerdo e direito do pai são setados para NULL se possui apenas um filho o ponteiro apropriado do pai passa a apontar para o filho se o nó possui dois filhos se um desses dois filhos não possui filhos, use esse nó para substituir o nó removido Considere a árvore mostrada do lado esquerdo da figura 14.12 Þ deletar um nó é fácil se: terminalÞ ponha o link correspondente do pai com null ou se possui apenas um filho como A, H ou R Þ mova o link na criança para o link do pai apropriado ou mesmo se o nó possui dois filhos mas um desses dois filhos não possui filhos como N Þ use esse nó para substituir o pai. 95

Remoção em Árvore Binária de Busca senão: substituir o valor do nó a ser removido substitua este com o elemento cuja chave é imediatamente maior (ou menor) é sempre folha? senão for folha – vá repetindo o procedimento algoritmo? 96

Remoção em Árvore Binária de Busca 6 4 9 3 5 8 10 7 Removendo 5: basta que o ponteiro a direita de 4 aponte para NULL 2 97

Remoção em Árvore Binária de Busca 6 4 9 3 5 8 10 7 Removendo 3: basta que substituir o nó 3 pelo nó 2 continua valendo a regra de formação da árvore 2 98

Remoção em Árvore Binária de Busca 6 4 - 5 9 3 5 8 10 7 Removendo 4: basta que o substituir 4 pelo 5 continua valendo a regra de formação da árvore 2 99

Remoção em Árvore Binária de Busca 6 - 7 4 9 3 5 8 10 7 Removendo 6 (raiz): substituir o 6 pelo imediatamente maior: 7 – como determinar? resulta na remoção do elemento de chave 7 2 100

Árvore Binária de Busca A árvore obtida depende da seqüência de inserção de nós Para que a árvore binária de busca seja completa completa tem altura mínima o conjunto das chaves deve ser reordenado árvore comum - O (n) árvore completa - O (log n) 104

Árvore Binária de Busca uma árvore binária de busca completa o conjunto das chaves deve ser re-ordenado sejam so e s n+1 duas chaves fictícias e já inseridas a cada passo inserir em T uma nova chave que seja de índice médio entre i e j - duas chaves já inseridas 105

Árvore Binária de Busca árvore completa: ótima para a busca quando a freqüência de acesso aos nós é igual normalmente estas freqüências são diferentes é interessante construir uma árvore binária que seja a melhor possível no que diz respeito à busca para freqüências conhecidas 107

Eficiência da Árvore de Busca Depende da ordem original dos dados Se o array original está ordenado (ascendente ou descendente), as árvores resultantes só tem filhos a direita ou a esquerda a inserção do 1o. nó - 0 comparações a inserção do 2o. nó - 2 comparações a inserção do 3o. nó - 3 comparações 2 + 3 +....+n = n*(n+1)/2 -1 Complexidade - O(n2) - para inserir n nós 109

Eficiência da Árvore de Busca Se a lista original estiver organizada, e se uma árvore completa (parecida com completa) for se formando: complexidade da inserção = O( n log n ) 110

Eficiência da Árvore de Busca 12, 8, 17, 4, 16 A árvore é balanceada 111