Árvores e Árvores Binárias

Slides:



Advertisements
Apresentações semelhantes
ESTRUTURA DE DADOS Professor: Marcelo Mendes Turma: MBI-1
Advertisements

Marco Antonio Montebello Júnior
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ESTRUTURAS DE DADOS AVANÇADAS Aula /08/2011 Professor Leomir J. Borba-
Estruturas de Dados Árvores Binárias
TADS – Tipos Abstratos de Dados
Lema do Bombeamento – Gramáticas Livres do Contexto
Série de Exercícios.
Árvore Binária - altura máxima A: Inserção de 1, 2, 3, 4, 5, 6 e 7 Pior caso: O(n)
Árvores.

Arquivos Seqüenciais Inhaúma Neves Ferraz
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
SEMINÁRIO DE ALGORITMOS
Árvores Introdução e Aplicações Árvores de Busca Binária Fundamentos
Implementação de um mapa através de uma Árvore Binária de Busca
Árvores Balanceadas (AVL)
Métodos de Pesquisa: Seqüencial e Binária
Árvores Binárias de Pesquisa (ABP)
Estruturas de Dados I Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Estruturas de Dados II Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Robson Godoi / Sandra Siebra
Prof. Ernesto Lindstaedt
Fundamentos sobre Árvores
Algorítmos e estrutura de dados III
Árvore Binária de Busca
Listas Simplesmente Encadeadas
Árvores binárias de pesquisa com balanceamento
Denise Guliato Faculdade de Computação – UFU
INTELIGÊNCIA ARTIFICIAL
Árvores Binárias de Pesquisa
Algorítmos e estrutura de dados III
Estrutura de dados II Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Algorítmos e estrutura de dados III
Denise Guliato Faculdade de Computação – UFU
Algoritmos e Estrutura de Dados III
Árvores Binárias e Encaminhamentos
Rotação Simples e Dupla Katia Guimarães
Estruturas de Dados Aula 9: Listas (parte 1)
Á R V O R E S.
Estruturas de Dados Aula 11: TAD Pilha
Árvore Binária de Busca
Educação Profissional Técnica de Nível Médio Curso Técnico de Informática
Programação II Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -
Transparências da profa. Renata Galante da II/UFRGS com permissão

Á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.
© 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
Universidade do Vale do Rio dos Sinos - São Leopoldo -
Faculdade Pernambucana - FAPE Setembro/2007
Introdução a Árvores e Árvores Binárias
Estrutura de Dados Aula 3 - Listas
Prof. Daniel Morais dos Reis
Árvores e Árvores Binárias
Árvores Binárias e Árvores AVL Katia Guimarães. Árvores Binárias e Árvores AVL Katia S. Guimarães
Estrutura de Dados Prof. André Cypriano M. Costa
Adriana Libório Fernandes Lins Arthur Cavalcanti Alem Átila Valgueiro Malta Moreira Flavio Juvenal da Silva Júnior Gustavo Cauê Silva Botelho Matheus Bispo.
INE5408 Estruturas de Dados Introdução a Árvores - Conceitos - Árvores Binárias - Métodos e algoritmos de percurso - Métodos e algoritmos de balanceamento.
UNIVERSIDADE FEDERAL DE MINAS GERAIS Árvores Cristiano Arbex Valle Vinicius Fernandes dos Santos
Árvores.
Transcrição da apresentação:

Árvores e Árvores Binárias Prof. Alexandre Parra Carneiro da Silva parrasilva@gmail.com

Roteiro Contextualização Árvores Árvores Binárias

Roteiro Contextualização Árvores Árvores Binárias

Contextualização Importância de estruturas unidimensionais ou lineares (vetores e listas) é inegável. Contudo, elas não são adequadas para representar dados que devem ser dispostos de maneira hierárquica. Por exemplo, diretórios criados em um computador.

Exemplo de estrutura hierárquica Um exemplo de estrutura de diretório no Windows 2000

Roteiro Contextualização Árvores Árvores Binárias

Árvores Árvore é uma estrutura de dado adequada para representar hierarquias. Forma mais natural de definirmos uma estrutura de árvore é usando recursividade.

Definições Uma árvore é composta de um conjunto finito de nós. Desse conjunto, há um nó r denominado de raiz, que contém zero ou mais sub-árvores, cujas raízes são ligadas diretamente a r. Esses nós raízes das sub-árvores são ditos filhos do nó pai, r. Nós com filhos são comumente chamados de nós internos. Nós que não têm filhos são chamados de nós externos (folhas).

Estrutura de árvores

Exemplos de árvores (1/2) raiz da árvore Quantas sub-árvores existem na árvore acima? Quais são as sub-árvores? Quais nós são as raízes das sub-árvores da árvore acima? Quais nós são considerados nós internos? Quais nós são considerados nós externos (folhas)?

Exemplos de Árvores (2/2)

Propriedade Fundamental de Árvores Existe um único caminho da raiz para qualquer nó da árvore. Portanto, podemos definir a altura de todas as árvores como sendo o comprimento do caminho mais longo da raiz até uma das folhas. Por definição, a altura de uma árvore que possui somente um elemento é zero.

Exemplo de altura em árvores Qual a altura da árvore A2? árvore A2 árvore A1 Qual a altura da árvore A1?

Roteiro Contextualização Árvores Árvores Binárias

Árvores Binárias (AB) Uma árvore binária é constituída de um conjunto finito de nós. Cada nó pode ter no máximo dois filhos. De maneira recursiva, podemos definir uma árvore binária como sendo: uma árvore vazia; ou um nó raiz tendo duas sub-árvores, identificadas como a sub-árvore da direita (sad) e a sub-árvore da esquerda (sae).

Representação Esquemática de AB Representação esquemática da definição da estrutura de AB

Exemplo Árvore Binária raiz da árvore 8 9 7 1 13 5 11 4 3 2 raiz da sae raiz da sad

Notação Textual de Árvore Binária Exemplo de árvore binária Árvore vazia é representada por <>, e árvores não vazias por <raiz sae sad>. Com esta notação, a árvore ilustrada acima é representada por: <a <b<><d<><>>> <c<e<><>><f<><>>> >

Verificando a altura das árvores 1 6 7 3 8 9 10 4 5 2 nível 0 nível 1 Qual a altura da árvore binária ao lado ? nível 2 nível 3 Qual a altura da árvore binária ao lado ? Em qual nível está o nó C?

Percursos em Árvores Binárias Muitas operações em árvores binárias envolvem o percurso de todas as suas sub-árvores, executando alguma ação de tratamento em cada nó. É comum percorrer uma árvore em uma das seguintes ordens: Pré-Ordem: tratar raiz, percorrer sae, percorrer sad; Em-Ordem (ordem simétrica): percorrer sae, tratar raiz, percorrer sad; Pós-Ordem: percorrer sae, percorrer sad, tratar raiz.

Pré-Ordem Imprima os valores presentes nos nós da árvore ao lado, segundo a condição pré-ordem (tratar raiz, percorrer sae, percorrer sad). 34 55 5 1 17 90 75 26 13 43 40 80 Resultado: 34, 80, 40, 43, 13, 26, 90, 75, 55, 5, 1, 17.

Em-Ordem (Ordem Simétrica) Imprima os valores presentes nos nós da árvore ao lado, segundo a condição ordem simétrica (percorrer sae, tratar raiz, percorrer sad). 34 55 5 1 17 90 75 26 13 43 40 80 Resultado: 40, 80, 26, 90, 13, 43, 75, 34, 55, 1, 5, 17.

Pós-Ordem Imprima os valores presentes nos nós da árvore ao lado, segundo a condição pós-ordem (percorrer sae, percorrer sad, tratar raiz). 34 55 5 1 17 90 75 26 13 43 40 80 Resultado: 40, 90, 26, 13, 75, 43, 80, 1, 17, 5, 55, 34.

Aplicações de Árvores Binárias (1/2) Como árvores binárias de pesquisa (busca)

Aplicações de Árvores Binárias (2/2) Análise de expressões algébricas: prefixa, infixa e pósfixa. Prefixa: + * + 3 6 – 4 1 5 = 32 Infixa: 3 + 6 * 4 – 1 + 5 = 32 Pósfixa: 3 6 + 4 1 - * 5 + = 32

Definição da Estrutura de Árvores Binárias Como definir o Tipo Abstrato de Dados (TAD) que representa árvores binárias? Há duas formas: Estática; Dinamicamente;

Representação Dinâmica Criar um registro contendo os seguintes campos: info, sae e sad. Este registro é auto-referenciado através dos campos sae e sad. struct arv { int info; struct arv* sae; struct arv* sad; }; typedef struct arv Arv;

Registro dos nós de uma AB info sae sad

Principais funções sobre AB Iniciar árvores como vazias; Inserir nós na árvore; Verificar se árvore está vazia; Informar a altura da árvore; Pesquisar ocorrência de um valor no nó da árvore; Liberar estrutura alocada para as árvores; Percorrer a árvore em pré-ordem; Percorrer a árvore em em-ordem (ordem simétrica); Percorrer a árvore em pós-ordem.