Adriana Libório Fernandes Lins Arthur Cavalcanti Alem Átila Valgueiro Malta Moreira Flavio Juvenal da Silva Júnior Gustavo Cauê Silva Botelho Matheus Bispo.

Slides:



Advertisements
Apresentações semelhantes
Árvores Passeios.
Advertisements

Marco Antonio Montebello Júnior
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
Estrutura de Dados e Algoritmos e Programação e Computadores II
Algoritmos BUSCA E INSERÇÃO
Árvores.

David Menotti Algoritmos e Estruturas de Dados I DECOM – UFOP
Pesquisa em Árvores Digitais
David Menotti Estruturas de Dados I DECOM – UFOP
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
André Lopes Pereira Luiz Carlos Barboza Júnior
Árvores Introdução e Aplicações Árvores de Busca Binária Fundamentos
Árvores Binárias de Pesquisa (ABP)
Árvores e Árvores Binárias
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
Prof. Ernesto Lindstaedt
Fundamentos sobre Árvores
Algorítmos e estrutura de dados III
Listas Simplesmente Encadeadas
Algoritmos e Estruturas de Dados II
Pesquisa em Memória Primária
Árvores binárias de pesquisa com balanceamento
Á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
Á R V O R E S.
© 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
Educação Profissional Técnica de Nível Médio Curso Técnico de Informática

Árvores Binárias Profa. Patrícia A. Jaques Luiz Gonzaga Jr
Estruturas de Dados Aula 15: Árvores
Aula 06 – 05/04 Árvores binárias.
Prof. Hilton Cardoso Marins Junior ÁRVORES BINÁRIAS.
Prof. Hilton Cardoso Marins Junior
Programação II Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -
Conjuntos Algoritmos e Estruturas de Dados - IF672
© Copyright 2003 Algoritmos e Estruturas de Dados - Todos os direitos reservados Grafos IF672 - Algoritmos e Estruturas de Dados CIn - UFPE Adriana Libório.
Árvores AVL Algoritmos e Estruturas de Dados - IF672
Introdução a Árvores e Árvores Binárias
© Copyright 2007 Algoritmos e Estruturas de Dados - Todos os direitos reservados Estruturas de Dados Dinâmicas IF672 - Algoritmos e Estruturas de Dados.
Árvores de Busca Binária
© Copyright 2008 Algoritmos e Estruturas de Dados 1 IF672 - Algoritmos e Estruturas de Dados CIn - UFPE Adriana Libório Fernandes Lins Arthur Cavalcanti.
IF672 cc Algoritmos e Estruturas de Dados
1 de outubro de Árvores de Busca e Árvores AVL Parte 1 Katia Guimarães.
Programação Dinâmica IF672 - Algoritmos e Estruturas de Dados CIn - UFPE Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto Gomes.
Á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.
28 de outubro de Árvores Binárias e Árvores AVL Parte 2 Katia Guimarães.
Árvores e Árvores Binárias
© Copyright 2003 Algoritmos e Estruturas de Dados - Todos os direitos reservados Busca em Grafos IF672 - Algoritmos e Estruturas de Dados CIn - UFPE ©
Árvores Binárias e Árvores AVL Katia Guimarães. Árvores Binárias e Árvores AVL Katia S. Guimarães
© Copyright 2007 Algoritmos e Estruturas de Dados - Todos os direitos reservados Ponteiros IF672 - Algoritmos e Estruturas de Dados CIn - UFPE Murilo Raphael.
© Copyright 2003 Algoritmos e Estruturas de Dados - Todos os direitos reservados Busca Gulosa em Grafos IF672 - Algoritmos e Estruturas de Dados CIn -
Adriana Libório Fernandes Lins Arthur Cavalcanti Alem Átila Valgueiro Malta Moreira Flavio Juvenal da Silva Júnior Gustavo Cauê Silva.
BANCO DE DADOS II Árvore de Dados. FATEC - GUARATINGUETÁ Professor: Eduardo Barbosa Adiel Lemos Ana Renata Bruno Michael Jéssica Fernanda Layla Monique.
UNIVERSIDADE FEDERAL DE MINAS GERAIS Árvores Cristiano Arbex Valle Vinicius Fernandes dos Santos
Árvores.
Entrada e Saída de Dados com Arquivos – Java
Estruturas de Dados Dinâmicas
Transcrição da apresentação:

Adriana Libório Fernandes Lins Arthur Cavalcanti Alem Átila Valgueiro Malta Moreira Flavio Juvenal da Silva Júnior Gustavo Cauê Silva Botelho Matheus Bispo Arrais de Souza Murilo Raphael de Souza Lira Rafael Alberto Gomes Pereira Lima Rafael Brandão Lobo Rafael Loureiro de Carvalho Tiago Carneiro Pessoa Canto Vinicius Miranda Cesar

Árvores Binárias Estruturas dinâmicas formada por nós que possuem referências para outros dois nós (filhos). Cada nó é raiz de uma sub-árvore class Arvore { NoArvore raiz; } class NoArvore { int valor; NoArvore esq; NoArvore dir; } RAIZ

Pré-work: Árvores em Pré- ordem Pode-se usar pré-work para imprimir uma árvore em pré-ordem, ou seja, o valor do nó é impresso antes de suas duas sub-árvores

Pré-work: Árvores em Pré- ordem Implementação: void preOrdem(NoArvore arv) { if(arv == null){ return; } arquivo.print(arv.valor + " "); preOrdem(arv.esq); preOrdem(arv.dir); } Pré-work Teste do caso base Chamadas recursivas

Recursão: Árvores Binárias O mesmo conceito pode ser estendido para imprimir árvores em pós-ordem (em que o pai é impresso após os filhos) ou in-ordem (o pai é impresso entre os filhos) Pode-se usar o conceito de pós-work também para encontrar a altura de uma árvore. A altura de uma árvore é a maior distância entre a raiz e uma folha Por padrão, dizemos que uma folha é uma árvore de altura zero

Pós-Work: Altura de Árvores Exemplos: Altura: 4 Altura: 3 Altura: 0

Pós-Work: Altura de Árvores A altura de uma folha é zero, ou seja, uma referência nula seria uma árvore de altura –1. A altura de um nó qualquer é igual a 1 + a altura da maior sub-árvore. 5 Altura: 3 2 Altura: 0 9 Altura: 1 12 Altura: 4 Altura: -1 Pós-work: a altura do pai é calculada após as dos filhos

Pós-Work: Altura de Árvores

Pós-Work: Altura de Árvores Implementação: int altura(NoArvore arv) { if (arv == null){ return -1; } int h1 = altura(arv.esq); int h2 = altura(arv.dir); return (1 + Math.max(h1, h2)); } Teste do caso base Chamadas recursivas Pós-work

Árvore de Busca Binária A árvore de busca binária ou árvore de pesquisa binária é uma árvore onde todos os nós são valores, todo nó à esquerda contém uma sub-árvore com os valores menores que o nó raiz da sub-árvore e todos os nós da sub-árvore à direita contêm somente valores maiores que o nó raiz. Os valores são relevantes na árvore de busca binária. Seu objetivo é estruturar os dados de forma flexível permitindo pesquisa binária.

Representação da ABB X Y < XZ > X

Inserção na Árvore de Busca Inserir(No,Raiz){ Se raiz é nula então: Raiz := No Senão Se No > Raiz então: Inserir(No,Direita da Raiz) Senão Inserir(No,Esquerda da Raiz) }

Exemplo de Inserção Elementos a serem inseridos: 50,35, 60,40,48,22, < < > > 35 raiz 60 > > 60

Remoção na Árvore de Busca Caso 1: - O nó é uma folha: Remover(Raiz, x){ no := Buscar(Raiz,x) Se no é o filho da direita direita do Pai de no := nulo Senão esquerda do Pai de no := nulo }

Remoção na Árvore de Busca Caso 2 - O nó possui apenas um filho: Remover(Raiz,x){ no := Buscar(Raiz,x) Se no é o filho da direita direita do Pai de no := filho de no Senão esquerda do Pai de no := filho de no }

Remoção na Árvore de Busca Alguns conceitos importantes: - Sucessor = menor nó entre os maiores Qual o sucessor de 50? Nó 60 Percorre uma vez para a direita Percorre para a esquerda quantas vezes forem possíveis

Remoção na Árvore de Busca - Predecessor = maior nó entre os menores Qual é o predecessor de 60 ? Percorre uma vez para a esquerda Percorre para a direita quantas vezes forem possíveis Nó 58

Remoção na Árvore de Busca Caso 3 - O nó possui dois filhos: Remover(Raiz,x){ no := Buscar(Raiz,x) Se no é o filho da direita direita do Pai de no := sucessor/predecessor de no Senão esquerda do Pai de no := sucessor/predecessor de no Se sucessor tem filho Pai de sucessor aponta para filho de sucessor }