Carregar apresentação
A apresentação está carregando. Por favor, espere
1
Árvores e Árvores Binárias
Prof. Alexandre Parra Carneiro da Silva
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 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).
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
Exemplo de altura em árvores
Qual a altura da árvore A2? árvore A2 á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á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).
16
Representação Esquemática de AB
Representação esquemática da definição da estrutura de AB
17
Exemplo Árvore Binária
raiz da árvore 8 9 7 1 13 5 11 4 3 2 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 <raiz sae sad>. Com esta notação, a árvore ilustrada acima é representada por: <a <b<><d<><>>> <c<e<><>><f<><>>> >
19
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?
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
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.
22
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.
23
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.
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: + * – = 32 Infixa: * 4 – = 32 Pósfixa: * 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.
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.