Algoritmos e Estruturas de Dados I

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

AED1 - Árvores. Hebert Coelho. Instituto de Informática Universidade Federal de Goiás. HC AED1-Árvores 1/49

Árvores. SCC-214 Projeto de Algoritmos. Thiago A. S. Pardo. Um nó após o outro, adjacentes Sem relações hierárquicas entre os nós, em geral

Raiz, filho, pai, irmão, ancestral, descendente, folha.

Árvores. N-árias, Binárias, Busca. Vanessa Maia Berny Mestrado em Ciência da Computação

Árvores. Prof. Byron Leite Prof. Tiago Massoni Prof. Fernando Buarque. Engenharia da Computação. Poli - UPE

Algoritmos e Estrutura de Dados II. Árvore. Prof a Karina Oliveira.

Estrutura de Dados Árvores Prof. Tiago Eugenio de Melo, MSc material de referência

SUMÁRIO. Fundamentos Árvores Binárias Árvores Binárias de Busca

Árvores. SCC-202 Algoritmos e Estruturas de Dados I. Lucas Antiqueira

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

Fontes Bibliográficas. Estruturas de Dados Aula 15: Árvores. Livros:

Árvores & Árvores Binárias

Aula 07: Algoritmos de busca e Listas encadeadas

ÁRVORES E ÁRVORES BINÁRIAS. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos

Aula 19: Percursos em árvores binárias. Percurso em pré-ordem, ordem simétrica e pós-ordem. Algoritmo para cálculo de altura uma árvore binária

Estruturas de Dados II

Aula 13: Listas encadeadas (estruturas lineares)

ÁRVORES E ÁRVORE BINÁRIA DE BUSCA

Algoritmos e Estruturas de Dados I

ESTRUTURA DE DADOS. Árvores, árvores binárias e percursos. Cristina Boeres

Conceitos gerais Terminologia Forma de Representação de Árvores Árvores Binárias

Árvores Conceitos gerais

INF1010 Lista de Exercícios 2

INE5408 Estruturas de Dados

Árvores Binárias. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich

ESTRUTURA DE DADOS. Arvore Binária Jose. Arvore Ternaria Direção

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

UNIVERSIDADE DE SÃO PAULO ICMC SCC 202 Algoritmos e Estrutura de Dados I - 2º Semestre 2010 Profa. Sandra Maria Aluísio;

Árvores. Árvores Binárias. Conceitos gerais Terminologia Forma de Representação de Árvores. Conceitos gerais Operações

Aula 20: Árvores Binárias de Busca. Algoritmos de busca e inserção

CES-11. Árvores. Conceito de árvore. Definição recursiva de árvore Definições associadas a árvore. Ordenação dos nós de uma árvore

CES-11. Algoritmos e Estruturas de Dados

ALGORITMOS AVANÇADOS. UNIDADE V Estruturas de dados dos tipos Árvore Binária e Árvore AVL. Luiz Leão

CONCEITO DE ÁRVORE CES-11. A raiz é o único nó que não possui ancestrais. As folhas são os nós sem filhos. Exemplos:

Aula 08. Estruturas de dados Árvore e Grafo

Árvores Binárias e Busca. Jeane Melo

Estrutura de Dados. Carlos Eduardo Batista. Centro de Informática - UFPB

Aula T13 BCC202 Árvores. Túlio Toffolo

Árvores Binárias. 9/11 e 11/11 Conceitos Representação e Implementação

Árvores. Algoritmos e Estruturas de Dados I. José Augusto Baranauskas Departamento de Física e Matemática FFCLRP-USP

PAA-DCC-UFAM. Árvores. Universidade Federal do Amazonas Departamento de Eletrônica e Computação

8. Árvores. Fernando Silva DCC-FCUP. Estruturas de Dados. Fernando Silva (DCC-FCUP) 8. Árvores Estruturas de Dados 1 / 38

8. Árvores. Fernando Silva. Estruturas de Dados DCC-FCUP. Fernando Silva (DCC-FCUP) 8. Árvores Estruturas de Dados 1 / 38

Programação II. Árvores Binárias (Binary Trees) Bruno Feijó Dept. de Informática, PUC-Rio

Pesquisa em memória primária

Informática Parte 18 Prof. Márcio Hunecke

Árvores Binárias de Busca (ABB) 18/11

DAINF - Departamento de Informática

Aula 19 Árvores Rubro-Negras

ESTRUTURA DE DADOS E ALGORITMOS. Árvores Binárias de Busca. Cristina Boeres

Edital de Seleção 053/2016 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões

Árvores B. Prof. Márcio Bueno. / Fonte: Material da Prof a Ana Eliza Lopes Moura

Árvores Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação

Árvores. ! utilizada em muitas aplicações. ! modela uma hierarquia entre elementos. ! O conceito de árvores está diretamente ligado à recursão

Aula 13 Árvores Rubro-Negras

Edital de Seleção 023/2018 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões

INF 1010 Estruturas de Dados Avançadas. Árvores binárias

1. Proponha algoritmos para: a. Calcular a altura dos nós de uma árvore binária dada, armazenando o valor da altura no nó.

ADT - Árvores. ADT Árvores Definição

Árvores de pesquisa. Árvores de pesquisa equilibradas

Árvores Binárias de Busca (ABB) 18/11

Árvores Equilibradas. Sumário

Árvores Binárias. 16/11 Representação e Implementação: Encadeada Dinâmica O TAD

MCTA028 Programação Estruturada Aula 19 Custos de um algoritmo e funções de complexidade

Matemática Discreta 10

Transcrição:

Algoritmos e Estruturas de Dados I Aula 19: - Comparação empírica de algoritmos de ordenação - Árvores Prof. Jesús P. Mena-Chalco jesus.mena@ufabc.edu.br 1Q-2016 1

Comparação empírica de algoritmos de ordenação 2

Comparação empírica: Tempo 3

Comparação empírica: Tempo 4

Comparação empírica: Comparações 5

Árvores 6

Á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. 7

Á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 8

Árvores 9

Árvore e Floresta Uma árvore enraizada T, é um conjunto finito de elementos denominaos vértices (nós) tais que: T é uma árvore vazia, ou Existe um vértice chamado raiz de T(r(T)) Uma floresta é um conjunto de árvores. Se v é um vértice de T, a notação T(v) indica a subárvore de T com raiz v. Um vértice que não possui descendentes próprios é chamado de folha. Um vértice não folha é dito interior. 10

11

Representação hierárquica Representação por barras Representação por parênteses 12

Árvores binárias 13

Árvores binárias (binary trees) Uma árvore binária enraizada T, é um conjunto finito de elementos denominaos vértices tais que: T é uma árvore vazia, ou Existe um vértice chamado raiz de T(r(T)), e os restantes podem ser divididos em dois subconjuntos: Te(r(T)): a subárvore esquerda da raiz Td(r(T)): a subárvore direita da raiz Os quais são também árvores binárias. 14

Árvores binárias (binary trees) 15

Árvores binárias (binary trees) Exemplo de Árvores Issomórficas (se consideradas como árvores), porém distintas como árvores binárias 16

Árvores binárias (binary trees) O número de subárvores esquerdas e direitas vazias em uma árvore binária com n>0 vértices é n+1. 17

Árvores binárias (binary trees) (a) A. estritamente binária:cada vértice possui 0 ou 2 filhos. (b) A. binária completa: Os filhos estão no último ou penúltimo nível. (c) A. cheia: Os filhos estão no último nível. 18

Nós e filhos Os registros serão chamados de vértices (poderiam também ser chamadas de células) Cada vértice tem um endereço. Suponha que cada vértice tem 3 campos: Um número inteiro. Dois ponteiros para vértices. 19

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. 20

Varredura / Percurso Visita sistematica a cada vértice Uma árvore é uma estrutura não sequencial 21

Varredura Visitar um vértice significa operar, de alguma forma, com a informação a ele relativa. Percorrer uma árvore significa visitar os seus vértices exatamente um vez. Contudo, no processo de percorrer a árvore pode ser necessário passar várias vezes por alguns de seus vértices sem visitá-los. Muitos algoritmos sobre árvores ficam mais simples quando escritos de forma recursiva. 22

Varredura Uma maneira particularmente importante é a ordem esquerda-raiz-direita (e-r-d) inorder traversal. percurso em ordem. percurso em ordem simétrica. 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. 23

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

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

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

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

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

Varredura 3 1 0 6 2 9 7 2 3 6 5 4 7 9 8 9 edr 4 2 0 1 8 4 0 red 5 erd 8 3 1 6 7 5 Se n é o número de vértices, e a visita para cada vértice tiver um custo constante, a visita de todos os vértices teria um custo de O(n) 29

Atividade em aula 30

Varredura Uma função recursiva que faz a varredura e-r-d de uma árvore binária r: Exercício: escrever uma versão iterativa desta função. 31

Varredura 32

Varredura 33

Varredura A versão usa uma pilha p[0..t-1] de endereços e mais um endereço x que é candidato a entrar na pilha; é como se a pilha fosse p[0], p[1],..., p[t-1], x. A sequência x, p[t-1],..., p[0] é uma espécie de "roteiro" daquilo que ainda precisa ser feito: x representa a instrução "imprima a árvore x" e cada p[i] representa a instrução "imprima o vértice p[i] e em seguida a árvore p[i]->dir". Para dimensionar a pilha, suporemos que nossa árvore binária não tem mais que 100 vértices. 34

10 20 40 30 50 80 90 100 60 70 10 10 20 10 20 40 10 20 40 80 10 20 40 10 20 10 20 90 10 20 10 10 50 10 50 100 10 50 10 imprimir=80 imprimir=40 imprimir=90 imprimir=20 imprimir=100 imprimir=50 imprimir=10 30 30 60 30 imprimir=60 imprimir=30 70 imprimir=70 35

Altura de uma árvore 36

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. A altura de uma árvore vazia é -1 37

Altura de uma árvore 5 3 3 8 2 2 1 4 6 9 1 0 1 0 0 2 7 0 0 0 38

Conversão de uma floresta 39

Conversão de uma floresta Árvore n-aria Árvore binária 40

Conversão de uma floresta Árvore n-aria Árvore binária 41

Floresta 42

Floresta Árvore binária 43

In September 1956 IBM launched the 305 RAMAC, the first SUPER computer with a hard disk drive (HDD). The HDD weighed over a ton and stored 5 MB of data. 44

Árvores binárias com costura Árvores binárias com fios Threaded binary tree 45

Representação de uma árvore binária =NULL Para uma árvore binária de n vértices: São requeridas 2n+1 unidades de memória para sua representação 46

Representação de uma árvore binária =NULL Para uma árvore binária de n vértices: São requeridas 2n+1 unidades de memória para sua representação n+1 unidades de memória são iguais a NULL. 47

Representação de uma árvore binária =NULL Para uma árvore binária de n vértices: São requeridas 2n+1 unidades de memória para sua representação n+1 unidades de memória são iguais a NULL. Por que não aproveitar esse espaço de memoria? 48

Árvore binária com costura 49

Árvore binária com costura Sem uso de uma pilha é facil percorrer a árvore. 50

Árvore binária com costura 51