A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Árvores e Árvores Binárias

Apresentações semelhantes


Apresentação em tema: "Árvores e Árvores Binárias"— Transcrição da apresentação:

1 Árvores e Árvores Binárias

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

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

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

5 Árvores - Introdução Em computação, uma árvore é um modelo abstrato de uma estrutura hierárquica; Trata-se de uma estrutura não-linear constituída de nós com relações de parentesco (pai-filho); Aplicações: S.O.s (arquivos). Linguagens (O.O.). etc

6 Árvores - Introdução Árvores são adequadas para representar estruturas hierárquicas não lineares, como relações de descendência pai, filhos, irmãos, etc. Forma mais natural de definirmos uma estrutura de árvore é usando recursividade.

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

8 Exemplo

9 Terminologia Raiz (root): nó sem pai (A).
Nó Interno: nó com pelo menos um filho (A, B, C, F). Nó Externo ou Folha: nó sem filhos (E, I, J, K, G, H, D). Ancestrais (de um nó): pai ou ancestrais do pai do nó. Descendentes (de um nó): nós que o possuem como ancestral. Sub-Árvore: árvore consistindo de um nó e dos seus descendentes.

10 Exemplo

11 Terminologia O NÍVEL de um nó X é definido como:
O nível de um nó raiz é 1 O nível de um nó não raiz é dado por Nível de seu nó PAI + 1 O GRAU de um nó X pertencente a uma árvore é igual ao número de filhos de X Se X é folha, então Grau(X) = 0 O GRAU de uma árvore T é o maior entre os graus de todos os seus nós

12 Exemplo

13 Terminologia Profundidade (de um nó): número de ancestrais.
Raiz possui profundidade zero. Altura (de uma árvore): máxima profundidade de qualquer nó. Exemplo ao lado ⇒ 3. Altura (de um nó): altura da sub-árvore com raiz naquele nó. Folhas possuem altura zero. Raiz possui altura da árvore. Profundidade (de uma árvore): máx. profundidade de uma folha. Equivalente à altura.

14 Exemplo

15 Outras formas de representação
Representação por Parênteses Aninhados: ( A (B) ( C ( D (G) (H) ) (E) ( F (I) ) ) ) ou seja, uma lista generalizada!! Representação por Diagramas de Venn:

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

17 Exemplos de árvores Quantas sub-árvores existem na árvore acima?
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)? Qual é a altura da árvore?

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

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

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

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

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

23 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 ? Resposta: nível – 1 nível 2 nível 3 Qual a altura da árvore binária ao lado ? Em qual nível está o nó C?

24 Árvore binária própria
Também denominada de árvore estritamente binária, é tal que: Cada nó interno possui exatamente 2 filhos (não vazios). Denomina-se o par de filhos de: filho esquerdo (left child), e filho direito (right child). Definição recursiva: Uma árvore de um único nó raiz, ou Uma árvore cuja raiz possui um par ordenado de filhos, cada um dos quais é a raiz de uma árvore binária própria.

25 Exemplo Árvore binária própria
Árvore de Expressão Aritmética Árvore Binária associada com uma expressão aritmética Nós internos: operadores Nós externos: operandos Exemplo: (2 * (a - 1) + (3 * b))

26 Árvore Binária Completa
É própria* Se a profundidade da árvore é d, então cada nó folha está no nível d ou no nível d+1 Os nós folha no nível d estão todos à direita dos internos

27 Árvore Binária Completa Cheia
Todos os seus nós folha estão no mesmo nível

28 Árvores Binárias Balanceadas
Para cada nó, as alturas de suas sub-árvores diferem em, no máximo, 1

29 Exercícios Prove por contra-exemplo que uma AB própria não é necessariamente uma AB completa. Represente a seguinte expressão aritmética em uma árvore binária própria de expressão aritmética: ( 5 + ( ( 2 / (a + 1) ) - (3 * b) ) ) * ( 10 / c ) Responda com relação à árvore do exercício anterior: Qual a altura da árvore ? Qual a profundidade da árvore? Qual o grau da árvore? Quais os ancestrais, os descendentes, a profundidade, a altura, o nível, o grau, o pai, os tios, os irmãos e os filhos do nó correspondente ao operador de subtração da expressão ?

30 Exercícios Represente a árvore do exercício anterior via:
Parênteses Aninhados Diagrama de Venn. Qual a altura máxima que uma árvore estritamente binária com 45 nós pode ter? Justifique. Qual a altura máxima que uma árvore estritamente binária com 27 nós externos pode ter? Justifique. Qual a altura mínima que uma árvore estritamente binária com 43 nós pode ter? Justifique. Qual a altura mínima que uma árvore estritamente binária com 30 nós externos pode ter? Justifique.

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

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

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

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

35 Aplicações de Árvores Binárias
Análise de expressões algébricas: prefixa, infixa e pósfixa. Prefixa: + * – = 32 Infixa: * 4 – = 32 Pósfixa: * 5 + = 32

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

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

38 Registro dos nós de uma AB
info sae sad

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


Carregar ppt "Árvores e Árvores Binárias"

Apresentações semelhantes


Anúncios Google