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

Documentos relacionados
Algoritmos e Estruturas de Dados I

Aula 07: Algoritmos de busca e Listas encadeadas

Á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

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

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

Árvores & Árvores Binárias

Aula 13: Listas encadeadas (estruturas lineares)

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

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

Estruturas de Dados II

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

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

Árvores & Árvores Binárias

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

Árvores - Conceitos. Roseli Ap. Francelin Romero

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

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

ÁRVORES E ÁRVORES BINÁRIAS. Adaptado de Alexandre P

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

ÁRVORES. Prof. Yan ndre Maldonado - 1. Prof. Yandre Maldonado e Gomes da Costa

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

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

INE5408 Estruturas de Dados

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

MCTA001 Algoritmos e Estruturas de Dados I. Aula 08 Árvores (parte 1) Laboratório

Arvores binárias. Fonte: PF 14 pf/algoritmos/aulas/bint.html

Algoritmos e Estruturas de Dados I

Árvores Conceitos gerais

Árvores. Aula 04. DPEE 1038 Estrutura de Dados para Automação Curso de Engenharia de Controle e Automação Universidade Federal de Santa Maria

Aula 13 Árvores Rubro-Negras

ÁRVORES E ÁRVORE BINÁRIA DE BUSCA

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

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

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

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

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

INF1010 Lista de Exercícios 2

Árvores. Árvores M-Vias. Métodos de Pesquisa de Dados. de Pesquisa (ANP) VANTAGENS EXEMPLO

Árvores. Listas e árvores. Árvores. Árvores. Árvores. Árvores 03/11/2011. Listas lineares

Aula 18 Árvores B e parâmetros de compilação

Árvores Binárias e Busca. Jeane Melo

Aula 08. Estruturas de dados Árvore e Grafo

Universidade Federal do ABC Avaliação Disciplina Turma Professor Data Instruções para a prova (leia antes de começar): SelectionSort selectonsortrec

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

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

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

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

Árvores-B (Parte Ib) SCC-203 Algoritmos e Estruturas de Dados II. Graça Nunes

Bit (Binary Digit) é a menor unidade de armazenamento de informação dentro do computador; Byte é a união de 8 bits capaz de representar 256

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:

Universidade Federal de Mato Grosso

Pesquisa em memória primária

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

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

(a) todos os nós irmãos da árvore m-ária são interligados; (b) todas as conexões pai-filho são removidas, exceto a primeira de cada grupo.

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

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

CES-11. Algoritmos e Estruturas de Dados. Carlos Alberto Alonso Sanches Juliana de Melo Bezerra

Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP. Aula 08: Árvores

Informática Parte 18 Prof. Márcio Hunecke

Árvores Binárias. Disciplina de Algoritmos e Estrutura de Dados III. Prof. Marcos Antonio Schreiner 17/03/2015

Prof. Jesus José de Oliveira Neto

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

- Mapa de memória de um processo - Ponteiros

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

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

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

Aula T13 BCC202 Árvores. Túlio Toffolo

Aula 19 Árvores Rubro-Negras

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

MCTA028 Programação Estruturada Aula 07: - Mapa de memória de um processo - Ponteiros (parte 1)

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

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

Árvores. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR

MCTA001 Algoritmos e Estruturas de Dados I Aula 02: Ponteiros e estruturas

Estruturas de Dados. Profº Carlos Alberto Teixeira Batista

Acesso Sequencial Indexado

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

Árvores de Pesquisa (Parte I)

ÁRVORES. Árvores. Árvores. Prof. Yandre Maldonado e Gomes da Costa

Estrutura de Dados: Aula 3 - Linguagem C

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

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

INF 1620 P2-23/10/04 Questão 1 Nome:

Pesquisa em Memória Primária Árvores de Busca. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR

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

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

(a) Indique, em português, o que realiza a seguinte função. [4 pontos]

Exercícios: Árvores. Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de estrutura de dados em linguagem C

Árvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo

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

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

Transcrição:

MC3305 Algoritmos e Estruturas de Dados II Aula 06 Árvores Prof. Jesús P. Mena-Chalco jesus.mena@ufabc.edu.br 2Q-2015 1

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

Á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

Árvores Uma árvore enraizada T, é um conjunto finito de elementos denominaos nós/vértices 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. 5

6

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

Árvores binárias 8

Árvores binárias (binary trees) Uma árvore binária enraizada T, é um conjunto finito de elementos denominaos nós/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)) e Td(r(T)), a subárvore esquerda e a direita da raiz, respectivamente, as quais são também árvores binárias. 9

Árvores binárias (binary trees) 10

Árvores binárias (binary trees) Exemplo de Árvores Binárias, issomórficas (se considerdas como árvores), porém distintas como árvores binárias 11

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

Árvores binárias (binary trees) (a) Cada vértice possui 0 ou 2 filhos. (b) Os filhos estão no último ou penúltimo nível. (c) Os filhos estão no último nível. 13

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. Suporemos que por enquanto cada vértice tem 3 campos: Um número inteiro. Dois ponteiros para vértices. 14

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

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

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

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

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

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 20

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

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

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

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) 24

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

Varredura 26

Varredura 27

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

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 29

Altura de uma árvore 30

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 31

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

Conversão de uma floresta 33

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

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

Floresta 36

Floresta Árvore binária 37

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

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

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 40

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

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? 42

Árvore binária com costura 43

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

Árvore binária com costura 45

Desafio 02 opcional 0,5 na média final da disciplina Envio até 25/06 (23h50-Tidia) Implemente o algoritmo costurar_erd. Veja arquivo desafio2.c no repositório do Tidia (aula 06). Apresentação livre de exemplos (quanto mais completo melhor). Apenas 2 arquivos que deverá submeter pelo Tidia: Código fonte em C/C++ (RA_desafio2.c/cpp) Um PDF contendo uma simples descrição do programa (não maior a 4 páginas). O formato desse relatório é livre. (RA_desafio2.pdf) 46