Escolar Documentos
Profissional Documentos
Cultura Documentos
Aula 14
Profª Otilia
Objetivos...
Nesta aula serão apresentadas as propriedades básicas e definição
de árvore. Será explicada sua motivação de uso e as vantagens de
implementar estruturas hierárquicas em relação às listas lineares.
Também serão demonstradas características de uma árvore, como
seus elementos, caminhos,
altura e níveis.
2
Situação-Problema
• Imagine que exista a necessidade de, a partir do diretório
principal de um conjunto de arquivos organizados, percorrer o
caminho que faz o menor percurso até encontrar o arquivo
procurado?
• Uma lista linear não seria a melhor construção para buscar
arquivos por esse método, uma vez que ignora definições de
hierarquia.
• Como deveria ser construída a estrutura que permita o percurso
de elementos através de vários caminhos?
3
Aplicações e Exemplos
• Aplicações:
• Construção de rodovias, instalação de redes em geral.
• Exemplos:
• Vamos representar as situações a seguir através de grafos.
4
Árvores
• utilizada em muitas aplicações
• modelagem de algoritmos
5
Árvores: Motivação
• Qual estrutura de dados o Windows Explorer deve utilizar para
gerenciar os arquivos?
6
Árvores
• um conjunto finito de elementos onde
• um elemento é chamado de raiz
7
Árvores
• uma coleção não vazia de vértices e ramos que satisfazem a certos
requisitos
8
Árvore Genealógica
• Vértices: pessoas.
• Arestas: relação de
parentesco em
primeiro grau
(mãe (pai) – filho(a)).
9
Jogo da velha
• Vértices: os estados do jogo.
• Arestas: existe uma aresta entre um estado do jogo e um estado
que poder ser obtido através deste.
10
Árvores
•A
11
Árvores
Diagrama
de Venn
12
Expressão Aritmética
• pode ser representada por uma árvore,
colocando-se os operandos nos nós e
seus respectivos operadores nas sub-
árvores.
13
Aplicações
• Árvores são adequadas para representar estruturas hierárquicas
não lineares
• Exemplos:
• Relações de descendência (pai, filho, etc)
• Diagrama hierárquico de uma organização
• Campeonatos de modalidades desportivas
• Taxonomia
• Em computação
• Estrutura de diretórios (pastas)
• Busca de dados armazenados no computador
• Representação de espaço de soluções (ex: jogo de xadrez)
• Modelagem de algoritmos
14
Árvores
• Existem vários tipos de árvores em computação, desenvolvidas
para diferentes tipos de aplicações:
• Árvore binária de busca
• Árvores AVL
• Árvore Rubro-negra
• Árvore B+
• Árvore 2-3
• Árvore 2-3-4
• Quadtree
• Octree
• Etc.
15
Propriedade de uma Árvore
• Propriedades:
• Pai: é o antecessor imediato de um vértice
16
Árvores
17
Árvore
• Caminho em uma árvore
• É uma sequencia de vértices de modo que existe sempre uma aresta ligando
o vértice anterior com o seguinte
• Existe exatamente um caminho entre a raiz e cada um dos nós de árvore
A, D, H
18
Árvore
• Sub-árvore
• Dado um determinado vértice, cada filho seu é a raiz de uma nova sub-
árvore
• De fato, qualquer vértice é a raiz de uma sub-árvore consistindo dele e
dos nós abaixo dele
• Grau de um vértice: é um número de sob-árvores do vértice
19
20
Árvores
• Altura da árvore:
• Também chamada de profundidade
• É o comprimento do caminho mais longo da raiz até uma das suas folhas
• Níveis
• Numa árvore, os vértices são classificados em níveis
• O nível é o número de nós no caminho entre o vértice e a raiz
21
Árvore Binária
• Árvore Binária:
• É um tipo especial de árvore.
• Cada vértice pode possuir duas sub-árvore: sub-árvore a esquerda e
sub-árvore a direita.
• O grau de cada vértice (número de filhos) pode ser 0, 1 ou 2
22
Árvore Binária
• Árvore Estritamente Binária
• Cada nó (vértice) possui 0 ou 2 sub-árvores
• Nenhum nó tem filho único
• Nós internos (não folhas) sempre tem 2 filhos
23
Árvore Binária
• Árvore Binária Completa
• É estritamente binária e todos os seus nós-folha estão no mesmo nível
• O número de nós de uma árvore binária completa é 2h-1, onde h é a altura
da árvore.
24
Árvore Binária
• Árvore Binária Quase Completa
• A diferença de altura entre as sub-árvores de qualquer nó é no máximo 1.
• Se a altura da árvore é D, cada nó folha esta no nível D ou D-1.
25
Percorrendo uma árvore binária
• Muitas operações em árvores binárias necessitam que se percorra
todos os nós de suas sub-árvores, executando alguma ação ou
tratamento em cada nó.
26
Percorrendo uma árvore binária
• Podemos percorrer a árvore de 3 formas (essas são as mais
importantes, existem outras)
• Pré ordem:
• Visita a raiz, o filho da esquerda e o filho da direita
• Em ordem:
• Visita o filho da esquerda, a raiz e o filho da direita
• Pós ordem:
• Visita o filho da esquerda, o filho da direita e a raiz
27
Pré-Ordem
• Visita a raiz, o filho da esquerda e o filho da direita
2 6
1 3 5 7
4 2 1 3 6 5 7
28
Outro exemplo de Pré-ordem
ABDGCEHIF
29
Algoritmo pré-ordem
• Algoritmo: percurso em pré-ordem
3
1 2
4
2 6
1 3 5 7
1 2 3 4 5 6 7
32
Outro exemplo de Em ordem
DGBAHEICF
33
Algoritmo em ordem
• Algoritmo: percurso em ordem
3
1 2
4
2 6
1 3 5 7
1 3 2 5 7 6 4
36
Outro exemplo de Pós-ordem
GDBHIEFCA
37
Complexidade do algoritmo de percurso
• Há exatamente uma chamada do procedimento, para cada nó da
árvore.
38
Aplicação
• Aplicação: determinar a altura de cada nó de uma árvore binária T.
• Para determinar a altura de um nó v, é necessário conhecer o
comprimento do maior caminho de v, até um de seus descendentes.
• A altura de v somente pode ser calculada após a visita a todos os
descendentes de v.
• O percurso pós ordem é o indicado.
• Cálculo da altura: h = 1 + max {h1, h2}
h1 h2
39
Exercícios
• Levando em conta os valores numéricos e as operações algébricas
inseridas na árvore binária, assinale a opção que é formada pela
leitura da árvore em profundidade em percurso pós-ordem.
a) 4x5+7/8–2
b) 45x78/2-+
c) x45+7/8–2
d) +x45-/782
e) +x–45/278
40
Leitura Específica
• Video "Estrutura de Dados - Árvores - Conceitos básicos". Disponível em:
https://www.youtube.com/watch?v=eiMMtyRBYCE
• ASCENCIO, A.F.G., ARAUJO, G.S. Estrutura de Dados: Algoritmos, Análise da
Complexidade e implementações em Java e C/C++. 1ª Ed.. São Paulo: Pearson Prentice
Hall, 2010. Disponível em:
https://plataforma.bvirtual.com.br/Acervo/Publicacao/1995 Pag. 278 - Estruturas
de Dados do Tipo Pilha Árvore
• Árvores. Disponível em: https://sites.google.com/site/proffdesiqueiraed/aulas/aula-
10---arvores
• Estrutura de Dados não sequencial com armazenamento não sequencial (?Árvore?).
Disponível em:
https://www.di.ubi.pt/~cbarrico/Disciplinas/AlgoritmosEstruturasDados/Downloads
/Capitulo%204%20-%20Arvores.pdf
41
Aprenda +
• Video "Árvores". Disponível em:
https://www.youtube.com/watch?v=iLvpaqAoVD8
42