1 / 26

INE 5384 Estruturas de Dados Prof a . Patrícia Vilain 2003.2

INE 5384 Estruturas de Dados Prof a . Patrícia Vilain 2003.2. Árvores Binárias. A. C. H. F. D. B. E. G. Árvore Binária. Uma árvore binária é uma árvore N-ária com N = 2. Distingue-se entre uma subárvore esquerda e uma direita. subárvore à esquerda. subárvore à direita.

ilori
Download Presentation

INE 5384 Estruturas de Dados Prof a . Patrícia Vilain 2003.2

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. INE 5384 Estruturas de Dados Profa. Patrícia Vilain 2003.2

  2. Árvores Binárias

  3. A C H F D B E G Árvore Binária • Uma árvore binária é uma árvoreN-ária com N = 2. • Distingue-se entre uma subárvore esquerda e uma direita. subárvore à esquerda subárvore à direita

  4. Árvore de Busca Binária Uma árvore binária é uma árvore de busca binária quando: • todo elemento armazenado na subárvore esquerda é menor que a raiz r; • nenhum elemento armazenado na subárvore direita é menor que a raiz r; • as subárvores esquerda e direita também são árvores de busca binária. Uma árvore binária é ordenada por default.

  5. C G H F B A E D Árvore de Busca Binária subárvore à esquerda subárvore à direita

  6. C G H F B A E D Propriedades As propriedades definidas para árvores N-árias também são aplicadas às árvores binárias: • Grau de um Nodo • Nodo Folha e Nodo Interno • Caminho e Comprimento de um Caminho • Profundidade de um Nodo • Nodo Pai e Nodo Filho • Nodo Irmão • Nodo Ancestral e Descendente • Altura de uma Árvore

  7. D D D D E E B A B B C Propriedade • “O número máximo de nodos em uma árvore binária A com altura h(A) é 2h(a)+1-1”.

  8. C G H F B A E D Busca em Largura • Percorre a árvore por ordem de profundidade de nodo 10 busca pela ESQ: C-B-G-A-E-H-D-F 20 busca pela DIR: C-G-B-H-E-A-F-D

  9. C G H F B A E D Busca em Profundidade • Percorre a árvore por ordem de sub-árvore (recursivamente) 10 20

  10. Busca em Profundidade em Árvore Binária • Tipos de pesquisa em uma busca em profundidade: • pré-ordem (ou pré-fixada) • pós-ordem (ou pós-fixada) • in-ordem (ou in-fixada ou central)

  11. C G H F B A E D Pré-Ordem em Árvore Binária Passos: • Visita o nodo raiz • Pesquisa em pré-ordem a subárvore à ESQ • Pesquisa em pré-ordem a subárvore à DIR

  12. C G H F B A E D Pré-Ordem em Árvore Binária Passos: • Visita o nodo raiz • Pesquisa em pré-ordem a subárvore à ESQ • Pesquisa em pré-ordem a subárvore à DIR pré-ordem: C-B-A-G-E-D-F-H

  13. C G H F B A E D Pós-Ordem em Árvore Binária Passos: • Pesquisa em pós-ordem a subárvore à ESQ • Pesquisa em pós-ordem a subárvore à DIR • Visita o nodo raiz

  14. C G H F B A E D Pós-Ordem em Árvore Binária Passos: • Pesquisa em pós-ordem a subárvore à ESQ • Pesquisa em pós-ordem a subárvore à DIR • Visita o nodo raiz pós-ordem: A-B-D-F-E-H-G-C

  15. C G H F B A E D In-Ordem em Árvore Binária Aplica-se apenas aárvores binárias Passos: • Pesquisa em in-ordem a subárvore à ESQ • Visita o nodo raiz • Pesquisa em in-ordem a subárvore à DIR

  16. C G H F B A E D In-Ordem em Árvore Binária Aplica-se apenas aárvores binárias Passos: • Pesquisa em in-ordem a subárvore à ESQ • Visita o nodo raiz • Pesquisa em in-ordem a subárvore à DIR in-ordem: A-B-C-D-E-F-G-H

  17. C G H F B A E D Modelagem Física de Árvores Binárias Alternativas de implementação: • Array • Encadeamento

  18. Árvore Binária com Array

  19. C 2 B 1 A 0 G 2 E 1 D 0 H 0 C G H A B D E Árvore com Array Alternativa 1: (nodo, número de filhos)

  20. C 2 B 1 A 0 G 2 E 1 D 0 H 0 Árvore com Array Alternativa 1: (nodo, número de filhos) • Desvantagens: • dado adicional (número filhos) • inserção, remoção: • achar a posição correta para inserir/remover um nodo • deslocamento • consultar o pais de um nodo • consultar os filhos de um nodo

  21. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 C -1 B 0 A 2 G 0 E 6 D 8 H 6 C G H A B D E Árvore com Array Alternativa 2: (nodo, posição do nodo pai)

  22. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 C -1 B 0 A 2 G 0 E 6 D 8 H 6 Árvore com Array Alternativa 2: (nodo, posição do nodo pai) • Desvantagens: • dado adicional (posição pai) • inserção: • buscar pai para descobrir o valor da sua posição • exclusão: • deslocamento e atualização de referências aos nodos pais no vetor • consultar os filhos de um nodo

  23. Árvore Binária com Encadeamento

  24. C G H F A B D E Árvore Binária com Encadeamento • Alternativa 1: árvore C B G A E H D F esq dado dir

  25. C G H F B A E D Classe ArvoreBinariaEncadeada public class ArvoreBinariaEncadeada implements ArvoreBinaria { Comparable elem; ArvoreBinariaEncadeada esq; ArvoreBinariaEncadeada dir; int numElementos; public ArvoreBinariaEncadeada() { this.elem = null; this.esq = null; this.dir = null; this.numElementos = 0; }

  26. C G H F B A E D Classe ArvoreBinariaEncadeada public void insere (Comparable elemento) {

More Related