1 / 29

Árvores e Árvores Binárias

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

anais
Télécharger la présentation

Árvores e Árvores Binárias

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. Árvores e Árvores Binárias Prof. Alexandre Parra Carneiro da Silva parrasilva@gmail.com

  2. Roteiro • Contextualização • Árvores • Árvores Binárias

  3. Roteiro • Contextualização • Árvores • Árvores Binárias

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

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

  6. Roteiro • Contextualização • Árvores • Árvores Binárias

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

  8. 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 filhosdo 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).

  9. Estrutura de árvores

  10. 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)?

  11. Exemplos de Árvores (2/2)

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

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

  14. Roteiro • Contextualização • Árvores • Árvores Binárias

  15. Árvores Binárias (AB) • Uma árvore binária é constituída de um conjunto finito de nós. • Cada nó pode ter no máximodois 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).

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

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

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

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

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

  21. 34 80 55 40 43 5 13 75 1 17 26 90 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). Resultado: 34, 80, 40, 43, 13, 26, 90, 75, 55, 5, 1, 17.

  22. 34 80 55 40 43 5 13 75 1 17 26 90 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). Resultado: 40, 80, 26, 90, 13, 43, 75, 34, 55, 1, 5, 17.

  23. 34 80 55 40 43 5 13 75 1 17 26 90 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). Resultado: 40, 90, 26, 13, 75, 43, 80, 1, 17, 5, 55, 34.

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

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

  26. 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;

  27. 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;

  28. Registro dos nós de uma AB info sae sad

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

More Related