Árvores
Cristiano Pires Martins
O jardineiro é jizus e as
árveres somos nozes
Introdução
• As árvores são uma das estrutura de
dados mais importantes da área da
computação;
• É utilizada em muitas aplicações do
mundo real;
• Os relacionamentos lógicos entre os
dados representam alguma
dependência de hierarquia ou
composição entre os nodos;
• Exite uma hierarquia de subordinação.
Conceitos Básicos
• As linhas que unem 2 nodos
representam os relacionamentos
lógicos e as dependências de
subordinação existentes entre
eles;
• A se relaciona somente com B, C
e D e não com os demais;
• B se relaciona somente com A e
E.
A
GFE
DCB
H
I J
Conceitos Básicos
• Relacionamentos de
subordinação, formando
hierarquias, podem apresentar
diferentes significados:
• Hierarquias de especialização:
representa classes e subclasses;
• Hierarquias de composição: o
nodo é composto por partes;
• Hierarquias de dependência:
representa um organograma.
Hierarquia de Especialização
Veículo
MotoCarroHelicópteroAvião
Aéreo Terrestre Aquático
Motor Vela Remo
Navio Iate Lancha
Hierarquia de Composição
Carro
Chassis Motor Rodas
Hierarquia de Dependência
Diretor
Superintendente
Diretor
Administrativo
Diretor Fábrica
Diretor
Comercial
Departamento
Cont. Qualidade
Departamento
Manutenção
Departamento
Produção
A
GFE
DCB
H
I J
Representação Gráfica de uma Árvore
Terminologia
• A terminologia não é padronizada;
• Existem nomes diferentes para os mesmos
conceitos em diferentes publicações.
Terminologia
• Raiz:
• Todos os outros nós da árvore são subordinados a ele;
• O acesso a todos os nós é sempre a partir dele.
• Nós descendentes:
• Relação de dependência com o nó mais acima.
Raiz
Nós descendentes
Terminologia
• Subárvore:
• Conjunto de nós, sendo todos subordinados a um único nó,
externo a esta subárvore.
Subárvores
Terminologia
• Grau de Um Nó:
• Número de Subárvores que são subordinadas diretamente a
esse nó.
• Grau de uma Árvore:
• É o maior valor dentre os graus de todos os seus nós.
Grau de um Nó
Terminologia
• Folha ou Terminal (externo): são os nós de
grau zero.
• Nó de derivação (interno): nós de grau
maior do que zero e que apresentam uma
subárvore.
Folha
Nó de Derivação
Terminologia
• Nível de um Nó:
número de ligações
entre este nó e a raiz
da árvore mais um.
• Caminho: sequência de
nós consecutivos
distintos entre dois
nós.
• Comprimento do
Caminho: Número de
níveis entre os dois nós
menos um.
Caminho
Nível 1
Nível 2
Nível 3
Nível 4
Comprimento = 3
Terminologia
• Altura ou Profundidade: é o número de nós
do maior caminho deste nó até um de seus
descendentes - folha;
• A altura de uma árvore é igual ao maior
nível de seus nós;
• Todos os nós folha tem altura 1.
Terminologia
• Floresta: conjunto de zero ou mais árvores
disjuntas.
• Árvore ordenada: quando a ordem de suas
subárvores é relevante para a aplicação que
está sendo representada através desta
estrutura de dados.
Terminologia
Floresta Árvores Ordenadas
CB
A
BC
A
≠
Terminologia
• Árvore binária: quando apresentar no
máximo grau 2 em cada nó;
• Árvore n-ária: quando apresentar no
máximo grau n em cada nó.
Terminologia
• Árvores isomorfas: quando é possível que se tornem
coincidentes através de uma permutação na ordem
das subárvores de seus nós.
• Árvores balanceadas: é aquela na qual existe uma
distribuição equilibrada entre os nós da árvore, ou
seja, existe uma diferença mínima entre todas as
folhas e a raiz.
• Uma árvore cheia ou completamente balanceada é
aquela em que todas as folhas estão a uma distância
igual da raiz.
Terminologia
• Caso o número de nós seja diferente de
zero, existe sempre uma raiz;
• Caso o número de nós seja zero, é
denominada vazia.
Operações Básicas
• Criação de uma árvore;
• Alocação das variáveis necessárias para a definição da
árvore;
• As demais operações são habilitadas depois disso.
• Inserção de um novo nó:
• Como raiz;
• Como folha;
• Como uma posição intermediária.
Operações Básicas
• Exclusão de um Nó:
• Quando não se realiza sobre uma folha, precisa reorganizar
a árvore.
• Acesso a um Nó;
• Destruição de uma árvore.
Outras Operações
• Pai: dado um determinado nó, retorna o
endereço do nó imediatamente superior;
• Tamanho: retorna o número total de nós
de uma árvore;
• Altura: retorna a altura da árvore.
Árvores Usando
Contiguidade Física
• Não é intuitiva como era no caso das Listas
Lineares;
A
E
DCB
GF IH
A(3) B(1) C(0) D(4) E(0) F(0) G(0) H(0) I(0)
A(3) B(1) E(0) C(0) D(4) F(0) G(0) H(0) I(0)
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
Implementações
A
E
DCB
GF IH
A(3) B(1) C(0) D(4) E(0) F(0) G(0) H(0) I(0)
A(3) B(1) E(0) C(0) D(4) F(0) G(0) H(0) I(0)
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
Por Níveis
Por Profundidade
Desvantagens Usando Contiguidade
Física
• Implementação não constitui uma boa representação
física de árvores;
• Dificuldade de seguir a hierarquia implícita nestas
estruturas ao manipular a árvore;
• Inserção e Remoção demorada;
Vantagens Usando Contiguidade
Física
• É eficiente em termos de espaço
ocupado, principalmente quando o grau
não varia muito;
• Implementação é mais simples se existir
limitação do número de descendentes.
Árvore Ternária Usando
Contiguidade Física
A
E
DCB
F G
A B C D λ E λ λ λ λ λ F G ...
1 2 3 4 5 6 7 8 9 10 11 12 13
Árvores Implementadas
por Encadeamento
• O acesso se dá sempre pela raiz;
• Os demais nós são alcançados somente
pelos endereços dos elos;
• A hierarquia de subordinação, implícita nas
árvores, fica perfeitamente representada.
• Todos os nós da árvore deve apresentar a
mesma estrutura.
Árvore Implementada Através
de Encadeamento
A
E
DCB
F G
A
C / / /B / / D /
F / / /E / / / G / / /
Vantagens da Implementação por
Encadeamento
• É bastante Intuitiva;
• Inserção e Remoção são simples,
constituindo basicamente na atualização
de endereços nos campos de elo de
alguns nós.
Desvantagens da Implementação
por Encadeamento
• Árvores cujos nós têm grau variado
apresentam geralmente muitos campos de
elo ociosos;
• O Acesso aos nós pode ser dificultado
devido à necessidade de acessar qualquer
nós sempre através da raiz.
Exercício
• Considere a árvore com representação aninhada a
seguir:
( A ( B ) ( C ( F ( H ) ( I ) )) ( D) ( E ( G ) ) )
• Represente a mesma árvore através de:
• Diagrama de Inclusão;
• Diagrama de barras;
• Numeração por níveis;
• Monte a árvore na grafia convencional.
A
ECB
F G
D
IH
Exercício
• Represente a mesma árvore através de:
• Diagrama de Inclusão;
• Diagrama de barras;
• Numeração por níveis;
• Representação aninhada.
A
ECB
F G
D
IH
Exercício
• Para a árvore ao lado, responda às
perguntas a seguir:
• Quantas subárvores esta árvore contém?
• Quais os nós-folha?
• Qual o grau de cada nó?
• Qual o grau da árvore?
• Liste os ancestrais dos nós B, G e I.
• Liste os nós de quem C é ancestral próprio.
• Liste os nós de quem D é descendente próprio.
• Dê o nível e a altura do nó F e A.
• Qual a altura da árvore?
A
ECB
F G
D
IH
Resposta
• Quantas subárvores esta árvore contém? 4
• Quais os nós-folha? B, D, G, H e I
• Qual o grau de cada nó?
• A=4,B=0,C=1,D=0,E=1,F=2,G=0,H=0 e I=0
• Qual o grau da árvore? 4
• Liste os ancestrais dos nós B, G e I.
• B=A; G=A e E; I=A, C e F
• Liste os nós de quem F é ancestral próprio. H e I
• Liste o nó de quem D é descendente próprio. A
• Dê o nível e a altura do nó F e A.
• F: Nível 3 e Altura 2 A: Nível 1 e Altura 4
• Qual a altura da árvore? 4 (maior caminho)
A
ECB
F G
D
IH
A
ECB
G I
D
ML O
RQ
F
KJ
P
TS
H
N
Exercício
Para a árvore ao lado, responda às perguntas a seguir:
• Quantas subárvores o nó G contém?
• Quais os nós-folha?
• Qual o grau de cada nó?
• Qual o grau da árvore?
• Liste os ancestrais dos nós L, Q e U.
• Liste os nós de quem P é ancestral próprio.
• Liste os nós de quem G é descendente próprio.
• Dê o nível e a altura do nó J, G, S, O e A.
• Qual a altura da árvore?
U

Aula 08 - árvores

  • 1.
  • 2.
    O jardineiro éjizus e as árveres somos nozes
  • 3.
    Introdução • As árvoressão uma das estrutura de dados mais importantes da área da computação; • É utilizada em muitas aplicações do mundo real; • Os relacionamentos lógicos entre os dados representam alguma dependência de hierarquia ou composição entre os nodos; • Exite uma hierarquia de subordinação.
  • 4.
    Conceitos Básicos • Aslinhas que unem 2 nodos representam os relacionamentos lógicos e as dependências de subordinação existentes entre eles; • A se relaciona somente com B, C e D e não com os demais; • B se relaciona somente com A e E. A GFE DCB H I J
  • 5.
    Conceitos Básicos • Relacionamentosde subordinação, formando hierarquias, podem apresentar diferentes significados: • Hierarquias de especialização: representa classes e subclasses; • Hierarquias de composição: o nodo é composto por partes; • Hierarquias de dependência: representa um organograma.
  • 6.
    Hierarquia de Especialização Veículo MotoCarroHelicópteroAvião AéreoTerrestre Aquático Motor Vela Remo Navio Iate Lancha
  • 7.
  • 8.
    Hierarquia de Dependência Diretor Superintendente Diretor Administrativo DiretorFábrica Diretor Comercial Departamento Cont. Qualidade Departamento Manutenção Departamento Produção
  • 9.
  • 10.
    Terminologia • A terminologianão é padronizada; • Existem nomes diferentes para os mesmos conceitos em diferentes publicações.
  • 11.
    Terminologia • Raiz: • Todosos outros nós da árvore são subordinados a ele; • O acesso a todos os nós é sempre a partir dele. • Nós descendentes: • Relação de dependência com o nó mais acima. Raiz Nós descendentes
  • 12.
    Terminologia • Subárvore: • Conjuntode nós, sendo todos subordinados a um único nó, externo a esta subárvore. Subárvores
  • 13.
    Terminologia • Grau deUm Nó: • Número de Subárvores que são subordinadas diretamente a esse nó. • Grau de uma Árvore: • É o maior valor dentre os graus de todos os seus nós. Grau de um Nó
  • 14.
    Terminologia • Folha ouTerminal (externo): são os nós de grau zero. • Nó de derivação (interno): nós de grau maior do que zero e que apresentam uma subárvore. Folha Nó de Derivação
  • 15.
    Terminologia • Nível deum Nó: número de ligações entre este nó e a raiz da árvore mais um. • Caminho: sequência de nós consecutivos distintos entre dois nós. • Comprimento do Caminho: Número de níveis entre os dois nós menos um. Caminho Nível 1 Nível 2 Nível 3 Nível 4 Comprimento = 3
  • 16.
    Terminologia • Altura ouProfundidade: é o número de nós do maior caminho deste nó até um de seus descendentes - folha; • A altura de uma árvore é igual ao maior nível de seus nós; • Todos os nós folha tem altura 1.
  • 17.
    Terminologia • Floresta: conjuntode zero ou mais árvores disjuntas. • Árvore ordenada: quando a ordem de suas subárvores é relevante para a aplicação que está sendo representada através desta estrutura de dados.
  • 18.
  • 19.
    Terminologia • Árvore binária:quando apresentar no máximo grau 2 em cada nó; • Árvore n-ária: quando apresentar no máximo grau n em cada nó.
  • 20.
    Terminologia • Árvores isomorfas:quando é possível que se tornem coincidentes através de uma permutação na ordem das subárvores de seus nós. • Árvores balanceadas: é aquela na qual existe uma distribuição equilibrada entre os nós da árvore, ou seja, existe uma diferença mínima entre todas as folhas e a raiz. • Uma árvore cheia ou completamente balanceada é aquela em que todas as folhas estão a uma distância igual da raiz.
  • 21.
    Terminologia • Caso onúmero de nós seja diferente de zero, existe sempre uma raiz; • Caso o número de nós seja zero, é denominada vazia.
  • 22.
    Operações Básicas • Criaçãode uma árvore; • Alocação das variáveis necessárias para a definição da árvore; • As demais operações são habilitadas depois disso. • Inserção de um novo nó: • Como raiz; • Como folha; • Como uma posição intermediária.
  • 23.
    Operações Básicas • Exclusãode um Nó: • Quando não se realiza sobre uma folha, precisa reorganizar a árvore. • Acesso a um Nó; • Destruição de uma árvore.
  • 24.
    Outras Operações • Pai:dado um determinado nó, retorna o endereço do nó imediatamente superior; • Tamanho: retorna o número total de nós de uma árvore; • Altura: retorna a altura da árvore.
  • 25.
    Árvores Usando Contiguidade Física •Não é intuitiva como era no caso das Listas Lineares; A E DCB GF IH A(3) B(1) C(0) D(4) E(0) F(0) G(0) H(0) I(0) A(3) B(1) E(0) C(0) D(4) F(0) G(0) H(0) I(0) 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10
  • 26.
    Implementações A E DCB GF IH A(3) B(1)C(0) D(4) E(0) F(0) G(0) H(0) I(0) A(3) B(1) E(0) C(0) D(4) F(0) G(0) H(0) I(0) 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 Por Níveis Por Profundidade
  • 27.
    Desvantagens Usando Contiguidade Física •Implementação não constitui uma boa representação física de árvores; • Dificuldade de seguir a hierarquia implícita nestas estruturas ao manipular a árvore; • Inserção e Remoção demorada;
  • 28.
    Vantagens Usando Contiguidade Física •É eficiente em termos de espaço ocupado, principalmente quando o grau não varia muito; • Implementação é mais simples se existir limitação do número de descendentes.
  • 29.
    Árvore Ternária Usando ContiguidadeFísica A E DCB F G A B C D λ E λ λ λ λ λ F G ... 1 2 3 4 5 6 7 8 9 10 11 12 13
  • 30.
    Árvores Implementadas por Encadeamento •O acesso se dá sempre pela raiz; • Os demais nós são alcançados somente pelos endereços dos elos; • A hierarquia de subordinação, implícita nas árvores, fica perfeitamente representada. • Todos os nós da árvore deve apresentar a mesma estrutura.
  • 31.
    Árvore Implementada Através deEncadeamento A E DCB F G A C / / /B / / D / F / / /E / / / G / / /
  • 32.
    Vantagens da Implementaçãopor Encadeamento • É bastante Intuitiva; • Inserção e Remoção são simples, constituindo basicamente na atualização de endereços nos campos de elo de alguns nós.
  • 33.
    Desvantagens da Implementação porEncadeamento • Árvores cujos nós têm grau variado apresentam geralmente muitos campos de elo ociosos; • O Acesso aos nós pode ser dificultado devido à necessidade de acessar qualquer nós sempre através da raiz.
  • 34.
    Exercício • Considere aárvore com representação aninhada a seguir: ( A ( B ) ( C ( F ( H ) ( I ) )) ( D) ( E ( G ) ) ) • Represente a mesma árvore através de: • Diagrama de Inclusão; • Diagrama de barras; • Numeração por níveis; • Monte a árvore na grafia convencional. A ECB F G D IH
  • 35.
    Exercício • Represente amesma árvore através de: • Diagrama de Inclusão; • Diagrama de barras; • Numeração por níveis; • Representação aninhada. A ECB F G D IH
  • 36.
    Exercício • Para aárvore ao lado, responda às perguntas a seguir: • Quantas subárvores esta árvore contém? • Quais os nós-folha? • Qual o grau de cada nó? • Qual o grau da árvore? • Liste os ancestrais dos nós B, G e I. • Liste os nós de quem C é ancestral próprio. • Liste os nós de quem D é descendente próprio. • Dê o nível e a altura do nó F e A. • Qual a altura da árvore? A ECB F G D IH
  • 37.
    Resposta • Quantas subárvoresesta árvore contém? 4 • Quais os nós-folha? B, D, G, H e I • Qual o grau de cada nó? • A=4,B=0,C=1,D=0,E=1,F=2,G=0,H=0 e I=0 • Qual o grau da árvore? 4 • Liste os ancestrais dos nós B, G e I. • B=A; G=A e E; I=A, C e F • Liste os nós de quem F é ancestral próprio. H e I • Liste o nó de quem D é descendente próprio. A • Dê o nível e a altura do nó F e A. • F: Nível 3 e Altura 2 A: Nível 1 e Altura 4 • Qual a altura da árvore? 4 (maior caminho) A ECB F G D IH
  • 38.
    A ECB G I D ML O RQ F KJ P TS H N Exercício Paraa árvore ao lado, responda às perguntas a seguir: • Quantas subárvores o nó G contém? • Quais os nós-folha? • Qual o grau de cada nó? • Qual o grau da árvore? • Liste os ancestrais dos nós L, Q e U. • Liste os nós de quem P é ancestral próprio. • Liste os nós de quem G é descendente próprio. • Dê o nível e a altura do nó J, G, S, O e A. • Qual a altura da árvore? U