1. Se este nó é raiz de uma árvore QuasiEquilibrada de ordem k, e

Slides:



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

Antonio Dirceu Rabelo de Vasconcelos Filho
Programação de Computadores
Métodos, Parâmetros, Argumentos e Contratos
UFES CC/EC/Mestrado Teoria dos Grafos Árvores. UFES CC/EC/Mestrado Teoria dos Grafos Árvores Grafo Acíclico: não possui ciclos.
Algoritmo polinomial para geração de uma Árvore Geradora Mínima
Estruturas de Dados Árvores Binárias
Conjuntos disjuntos Objectivo
Estrutura de Dados e Algoritmos e Programação e Computadores II
Algoritmos BUSCA E INSERÇÃO
Série de Exercícios.
Árvores.

David Menotti Algoritmos e Estruturas de Dados I DECOM – UFOP
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
SEMINÁRIO DE ALGORITMOS
André Lopes Pereira Luiz Carlos Barboza Júnior
Árvores Introdução e Aplicações Árvores de Busca Binária Fundamentos
Classificação e Pesquisa de Dados
Árvores e Árvores Binárias
Prof. Ernesto Lindstaedt
Algorítmos e estrutura de dados III
Árvore Binária de Busca
Buscas em Grafos Prof. André Renato 1º Semestre/2012
exercícios listas encadeadas
Estrutura de Dados Unidade 10 Simulação do Algoritmo 10.3 REMOVER Caso B: Remover o elemento que está no meio da lista, sendo que a lista possui vários.
Estrutura de Dados Unidade 9 Simulação do exercício 9.2 CASO 02a Roberto Ferrari Mauricio Falvo.
Estrutura de Dados Unidade 16 Simulação da função EstáNaÁrvore utilizando recursão – 16.1 Prof. Dr. Roberto Ferrari Jr.
Compressão de Textos Juliano Palmieri Lage.
Pesquisa em Memória Primária
Árvores binárias de pesquisa com balanceamento
Estrutura de Dados Unidade 9 Simulação do exercício 9.2 CASO 02b Roberto Ferrari Mauricio Falvo.
Estrutura de Dados Unidade 9 Simulação do exercício 9.2 CASO 04b Roberto Ferrari Mauricio Falvo.
Estrutura de Dados Unidade 10 Simulação do Algoritmo 10.3 REMOVER Caso D: Remover elemento que é único na lista. Roberto Ferrari Mauricio Falvo.
Estrutura de Dados Unidade 10 Simulação do Algoritmo 10.3 REMOVER Caso C: Tentar remover elemento que não está na lista. Roberto Ferrari Mauricio Falvo.
Árvores Binárias de Pesquisa
Algorítmos e estrutura de dados III
Estrutura de Dados Unidade 6 Simulação do exercício 6.2 Elaborada por Mauricio Falvo.
Estrutura de Dados Unidade 9 Simulação do exercício 9.2 CASO 03a
Árvores Balanceadas Liliane Rose Benning Salgado.
Listas, Filas e Pilhas Katia Guimarães.
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.
Orientação a Objetos e Java Graduação em Ciência da Computação
© Copyright 2007 Algoritmos e Estruturas de Dados - Todos os direitos reservados Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto.
Estrutura de Dados Unidade 10 Simulação do Algoritmo 10.3 REMOVER Caso A: Remover o elemento que está no primeiro nó da lista, sendo que a lista possui.
Á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 Binárias Profa. Patrícia A. Jaques Luiz Gonzaga Jr
Estruturas de Dados Aula 15: Árvores
Prof. Hilton Cardoso Marins Junior ÁRVORES BINÁRIAS.
Disciplina Análise de Algoritmos Bacharelado em CC
© 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 -
Faculdade Pernambucana - FAPE Setembro/2007
Heaps Binomiais Rômulo de Almeida Bruno Mestrando em Ciência da Computação Professora Liliane Salgado Disciplina - Algoritmos.
Análise e Síntese de Algoritmos Estruturas de Dados p/ Conjuntos DisjuntosCLRS, Cap. 21.
Conjuntos - 1 Conjuntos disjuntos Objectivo ° resolver eficientemente o problema da equivalência ° estrutura de dados simples (vector) ° implementação.
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 e Árvores Binárias
Árvores Binárias e Árvores AVL Katia Guimarães. Árvores Binárias e Árvores AVL Katia S. Guimarães
Adriana Libório Fernandes Lins Arthur Cavalcanti Alem Átila Valgueiro Malta Moreira Flavio Juvenal da Silva Júnior Gustavo Cauê Silva Botelho Matheus Bispo.
Transcrição da apresentação:

1. Se este nó é raiz de uma árvore QuasiEquilibrada de ordem k, e Prova 2008.1 Definição: Uma árvore binária é dita QuasiEquilibrada de ordem k se o módulo da diferença entre a altura da sua sub-árvore esquerda e a altura da sua sub-árvore direita for menor ou igual k, onde k é um parâmetro dado. (Altura de uma árvore é o número de arestas no maior caminho da raiz até uma folha qualquer desta árvore.) Escreva em linguagem estruturada um algoritmo recursivo eficiente para identificar, para cada nó v de uma árvore dada: 1. Se este nó é raiz de uma árvore QuasiEquilibrada de ordem k, e 2. Quantas sub-árvores existem na árvore de raiz v que são QuasiEquilibradas, incluindo a própria árvore de raiz v, se for o caso.

Esta informação deve ser colocada em dois campos chamados: QE (de tipo Booleano) e qtd-desc-QE (de tipo inteiro), dentro da estrutura do nó. ENTRADA: Apontador para a raiz r de uma árvore binária. SAÍDA: A informação deixada no nós após cada visita. DICA IMPORTANTE: Cada aresta só pode ser percorrida de cima para baixo uma única vez. Note que esta informação usa a altura da árvore, deve fluir no sentido bottom-up. Cada nó v no retorno da chamada deve devolver a seu pai duas informações: Qual a sua altura da árvore da qual v é raiz, e Quantos nós na árvore de raiz v, incluindo o próprio v, são raízes de sub-árvores QuasiEquilibradas.

Class Retorno{ int altura; int qtd; Retorno(int a, int q){ altura = a, qtd = q} } Retorno metodo(No raiz, int k){ SE(raiz == null) return Retorno(0, 0); Retorno esquerda, direita; esquerda = metodo(raiz.esquerda, k); direita = metodo(raiz.direita, k); raiz.QE = FALSE;

int altura, diferenca; SE(direita.altura > esquerda.altura){ diferenca = direita.altura – esquerda.altura; altura = direita.altura; } SENAO{ diferenca = esquerda.altura – direita.altura; altura = esquerda.altura; } SE(diferenca <= k) raiz.QE = TRUE; raiz.qtd-desc-QE = direita.qtd + esquerda.qtd + raiz.QE; return Retorno(altura+1, raiz.qtd-desc-QE); }

2007.2 Questão 6: Mostre as configurações da estrutura de dados após a execução de cada uma das operações abaixo, e mostre as respostas retornadas pelas operações de Find-Set. Use representação por lista ligada, com as heurísticas União por Ranking e Compressão de Caminhos. para i = 1 até 16 faça Make-Set (i) i = 1 enquanto i < 16 faça Union(xi, xi+1) i = i + 2 enquanto i < 13 faça Union(xi, xi + 2) i = i + 4 Union(x1, x5) Union(x11, x13) Union (x1, x10) Find-set(x2) Find-Set(x9)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 i = 1 enquanto i < 16 faça Union(xi, xi+1) i = i + 2 i = 1 enquanto i < 13 faça Union(xi, xi + 2) i = i + 4

Union(x1, x5)

Union(x11, x13)

Union (x1, x10)

Find-set(x2) Find-Set(x9)