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



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

Pesquisa em Memória Primária. Prof. Jonas Potros

Árvores Binárias de Busca

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

Árvores Binárias de Busca

Busca. Pesquisa sequencial

Árvores. Algoritmos e Estruturas de Dados 2005/2006

ESTRUTURAS DE DADOS II MSc. Daniele Carvalho Oliveira

Árvores Balanceadas. Árvore binária completamente balanceada. Ocorre quando a árvore está cheia ou quase cheia com o nível n-1 completo

Algoritmos e Estruturas de Dados I. Aula 11 Árvores AVL. Prof. Jesús P. Mena-Chalco.

Algoritmos e Estrutura de Dados III. Árvores

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

Sumário. 5COP096 Teoria da Computação Aula 8 Pesquisa em Memória Primária

Árvores Binárias Balanceadas

Estruturas de Dados I

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

Árvore Binária de Busca

Linguagem C: Árvores Binarias

INF 1007 Programação II

Algoritmos e Estruturas de Dados I

Árvores Binárias e Busca. Jeane Melo

EAD Árvore árvore binária

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

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

Árvores B + Prof Márcio Bueno. ed2tarde@marciobueno.com / ed2noite@marciobueno.com. Material da Prof a Ana Eliza Lopes Moura

Aula 10 Árvores Adelson-Velskii e Landis

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

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

Árvores AVL. Prof. Othon M. N. Batista Estrutura de Dados

MC3305 Algoritmos e Estruturas de Dados II. Aula 06 Árvores. Prof. Jesús P. Mena-Chalco.

Aula 13 Árvores Adelson-Velskii e Landis

Métodos Computacionais. Árvores

B D. Árvores Ordenadas

- UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) Curso: Informática

Estruturas de Dados Árvores

EAD Árvore - representação usando listas ligadas

ESTRUTURAS DE DADOS AVANÇADAS (INF 1010) (a) Seja um TAD definido por uma lista circular implementada em um vetor.

Árvores e Árvores Binárias

ESTRUTURAS DE DADOS I. Notas de Aula. Prof. Dr. Gilberto Nakamiti

Algoritmos e Estruturas de Dados: Árvore Binária

Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri. Banco de Dados Processamento e Otimização de Consultas

ESTRUTURA DE DADOS DCC013

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

Complexidade de Algoritmos

Unidade 5 Armazenamento e Indexação

Algoritmos e Estruturas de Dados 2

Mo:vação. Árvore AVL. Caracterís:cas. Origem. Exemplo. Exercício 1 Qual é a altura dos nodos 50 e 44?

Pesquisa em Memória Primária. Prof. Jonas Potros

Árvores de Suporte de Custo Mínimo

Árvore B UNITINS ANÁLISE E DESENVOLVIMENTO DE SISTEMAS 3º PERÍODO 43

Estruturas de Dados. Árvores AVL. Cesar Tadeu Pozzer. Curso de Ciência da Computação UFSM (12/12/2007)

Aula T20 BCC202 Pesquisa (Parte 2) Árvores de Pesquisa. Túlio Toffolo

Estruturas de Dados. Árvores Parte II: O TAD Árvore. EDs & Algoritmos. Operações Genéricas: Operações de Consulta: Operações de Acesso:

Árvores Binárias. Observação: Material elaborado a partir do material do Professor Marcos Costa.

Figura 13.1: Um exemplo de árvore de diretório.

Árvore Binária de Busca. Algoritmos e Estrutura de Dados II. Operações Busca e Sucessor. Árvore Binária de Busca. Árvores Rubro-Negras

Estruturas de Armazenamento e Indexação. Rafael Lage Moreira Barbosa

PROGRAMAÇÃO II 4. ÁRVORE

Classificação e Pesquisa de Dados

Aula 03 Limite assintótico para a ordenação, Ordenação em tempo linear

Estruturas de Dados Pilhas, Filas e Deques

BUSCA EM LISTAS LISTAS SEQÜENCIAIS, LISTAS SIMPLESMENTE E DUPLAMENTE ENCADEADAS E LISTAS CIRCULARES

Estrutura de Dados Árvores. Prof. Robinson Alves

Algoritmos de pesquisa. Tabelas de dispersão/hash

Árvores Binárias - continuação

ÁRVORES BINÁRIAS DE PESQUISA

2ª Lista de Exercícios

FUNDAÇÃO EDUCACIONAL DE ITUIUTABA

Hashing Letícia Rodrigues Bueno

Hashing. Rafael Nunes LABSCI-UFMG

ESTRUTURA DE DADOS E ALGORITMOS ÁRVORES BALANCEADAS. Cristina Boeres

;(define conta-folhas ; (lambda ( ) ; (cond ; ( ( ) ) ; ( (and ) ) ; ( else ; ) ) ))

Processamento de Dados

SUMÁRIO. Introdução... 3

ESTRUTURAS DE DADOS II

Árvores binárias de pesquisa com balanceamento. Algoritmos e Estruturas de Dados II

Possui como idéia central a divisão de um universo de dados a ser organizado em subconjuntos mais gerenciáveis.

ESTRUTURA DE DADOS CIÊNCIA E TECNOLOGIA DO RIO. Curso de Tecnologia em Sistemas para Internet

IA: Problemas de Satisfação de Restrições. Prof. Msc. Ricardo Britto DIE-UFPI

Rede d s d e d Com o pu p t u ado d r o es Divisão em Sub-redes

Pesquisa em Memória Primária. Algoritmos e Estruturas de Dados II

Pesquisa Sequencial e Binária

Introdução. Árvore B. CaracterísMcas. Origem do Nome. Exemplo. Grau. Rohit Gheyi. B vem de balanceamento

Listas Duplamente Encadeadas

Pesquisa Sequencial e Binária. Introdução à Programação SI2

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

Lista de Exercícios 3 Estruturas de Controle Profa Susana M Iglesias

HASHING. Katia Guimarães. 1

Sistemas de Numeração. Professor: Rogério R. de Vargas INFORMÁTICA 2014/2

Algoritmos e Estruturas de Dados: Árvore Binária de Busca

Árvores Rubro-Negras. Árvores Rubro-Negras. (Vermelho-Preta) Estrutura da Árvore. Estrutura da Árvore

Algoritmos e Estruturas de Dados

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

Métodos de Pesquisa em Memória Primária

Aula 03 Custos de um algoritmo e funções de complexidade

Projeto e Análise de Algoritmos Projeto de Algoritmos Tentativa e Erro. Prof. Humberto Brandão humberto@bcc.unifal-mg.edu.br

Prof. Yandre Maldonado - 1 PONTEIROS. Prof. Yandre Maldonado e Gomes da Costa

Transcrição:

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

2 Árvores Uma árvore é uma estrutura de dados mais geral que uma lista ligada. Nessa aula examinaremos os conceitos e operações mais simples sobre árvores binárias.

Árvores São estruturas não lineares. Representação natural para dados aninhados. Muito úteis para resolver uma enorme variedade do problema envolvendo algoritmos. Não é uma árvore 3

Árvores 4

5 Árvores de pesquisa A árvore de pesquisa é uma estrutura muito eficiente para armazenar informação. Apropriada quando existe necessidade de considerar todos ou alguma combinação de: Acesso direto e sequencial eficientes. Facilidade de inserção e retirada de elementos. Boa taxa de utilização de memória. Utilização de memória principal e secundária.

Árvores binárias 6

7 Nós e filhos Uma árvore binária (=binary trees) é um conjunto de registros que satisfaz certas condições.

8 Nós e filhos Uma árvore binária (=binary trees) é um conjunto de registros que satisfaz certas condições. Os registros serão chamados de nós (poderiam também ser chamadas de células) Cada nó tem um endereço. Suporemos que por enquanto cada nó tem 3 campos: Um número inteiro. Dois ponteiros para nós.

9 Nós e filhos Carga útil Campos que dão estrutura à árvore O nó folha (=leaf) é um nó que não tem filho algum. Se x tiver um pai, essa árvore é uma subárvore de alguma árvore maior.

Varredura 10

11 Varredura Muitos algoritmos sobre árvores ficam mais simples quando escritos de forma recursiva.

12 Varredura Ao contrário de uma lista encadeada, uma árvore binária pode ser percorrida de muitas maneiras diferentes. Uma maneira particularmente importante é a ordem esquerda-raiz-direita (e-r-d) inorder traversal percurso em inorder A subárvore esquerda da raiz, em ordem e-r-d; Depois a raiz; Depois a subárvore direita da raiz, em ordem e-r-d.

13 Varredura Como seria a varredura e-r-d?

14 Varredura Na figura abaixo, os nós estão numeradas na ordem da varredura e-r-d. 5 3 8 1 4 6 9 0 2 7

15 Varredura Uma função recursiva que faz a varredura e-r-d de uma árvore binária r:

Varredura 0 1 6 2 5 7 9 3 4 8 16

Varredura 9 4 8 2 3 6 7 0 1 5 17

18 Varredura 5 3 8 1 4 0 2 6 9 7 erd 0 1 6 2 5 7 9 edr 3 4 red 8 9 4 8 2 3 6 7 0 1 5

24 Exercícios (1) Escreva uma função que calcule o número de nós de uma árvore binária. (2) Escreva uma função que imprima, em ordem e-r-d, os conteúdos das folhas de uma árvore binária. (3) Dada uma árvore binária, encontrar um nó da árvore cujo conteúdo tenha um certo valor k. (4) Crie uma função para encontrar o endereço do primeiro no na órdem e-r-d.

25 Primeiro e último nó Crie uma função para encontrar o endereço do primeiro nó na ordem e-r-d. 5 3 8 1 4 0 2 6 9 7

26 Primeiro e último nó Crie uma função para encontrar o endereço do primeiro nó na ordem e-r-d. 5 3 8 1 4 0 2 6 9 7

Altura de uma árvore 27

28 Altura O nível do nó raiz é 0. Nivel 0 A altura de um nó é o comprimento do caminho mais longo deste até o nó folha. Nivel 1 Nivel 2 A altura de uma árvore é a altura do nó raiz. Nivel 3 Nivel 4

29 Árvores de pesquisa Qual é a altura da árvore?

30 Árvores de pesquisa Qual é a altura da árvore? 4

31 Altura de uma árvore A altura de um nó x em uma árvore binária é a distância entre x e o seu descendente mais afastado. A altura de uma árvore é a altura da raiz da árvore. Uma árvore com um único nó tem altura 0. Crie uma função que calcule a altura de uma árvore. A altura de uma árvore vazia é -1

32 Altura de uma árvore 5 3 3 8 2 2 1 4 6 9 1 0 1 0 0 2 7 0 0 0 P2: 14.3.3: Árvores AVL: Uma árvores é balanceada no sentido AVL se, para cada nó x, as alturas das subárvores esquerda e direita de x diferem em no máximo uma unidade. Escreva uma função que decida se uma dada árvore é balanceada no sentido AVL. Procure escrever sua função de modo que ela visita cada nó no máximo uma vez.

Árvores binária de busca Árvores de busca binária 33

34 Árvores de busca binária Para qualquer nó que contenha um registro: Temos a relação invariante:

35 Árvores de Busca Binária As ABB permitem minimizar o tempo de acesso no pior caso. Para cada chave, separe as restantes em maiores ou menores.

36 Árvores de Busca Binária As ABB permitem minimizar o tempo de acesso no pior caso. Para cada chave, separe as restantes em maiores ou menores. A estrutura hierárquica com divisão binária: uma árvore binária.

37 Complexidade de busca em uma ABB Busca em ABB = caminho da raiz até a chave desejada (ou até a folha, caso a chave não exista)

38 Complexidade de busca em uma ABB Busca em ABB = caminho da raiz até a chave desejada (ou até a folha, caso a chave não exista) Pior caso: Maior caminho até a folha = altura da árvore Complexidade:

39 Complexidade de busca em uma ABB Busca em ABB = caminho da raiz até a chave desejada (ou até a folha, caso a chave não exista) Pior caso: Maior caminho até a folha = altura da árvore Complexidade: Uma árvore binária balanceada é aquela com altura

40 AVL Georgy M. Adelson-Velsky Russia (1922-2014/abril/26) Evgenii Mikhailovich Landis Ucrania (1921-1997)

41 AVL G.M. Adelson-Velskii y E.M. Landis An algorithm for the organization of information. Proceedings of the USSR Academy of Sciences, vol. 146, pp. 263 266, 1962 AVL foi a primeira estrutura (conhecida) de árvore de altura balanceada ou altura equilibrada.

42 Árvores AVL Devido ao balanceamento da altura da árvore, as operações de: Busca Inserção Remoção em uma árvore com n elementos podem ser efetuadas em mesmo no pior caso.