SlideShare uma empresa Scribd logo
1 de 38
Baixar para ler offline
Á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

Mais conteúdo relacionado

Mais procurados

Estrutura de Dados Aula 13 - Árvores (conceito, elementos, tipos e utilizações)
Estrutura de Dados Aula 13 - Árvores (conceito, elementos, tipos e utilizações)Estrutura de Dados Aula 13 - Árvores (conceito, elementos, tipos e utilizações)
Estrutura de Dados Aula 13 - Árvores (conceito, elementos, tipos e utilizações)Leinylson Fontinele
 
Apresentação sobre Árvores B
Apresentação sobre Árvores BApresentação sobre Árvores B
Apresentação sobre Árvores BThiago Colares
 
Árvores: Conceitos e binárias
Árvores:  Conceitos e bináriasÁrvores:  Conceitos e binárias
Árvores: Conceitos e bináriasSérgio Souza Costa
 
Uml diagrama de sequencia
Uml diagrama de sequenciaUml diagrama de sequencia
Uml diagrama de sequenciaItalo Costa
 
Conceitos básicos de programação orientada a objetos
Conceitos básicos de programação orientada a objetosConceitos básicos de programação orientada a objetos
Conceitos básicos de programação orientada a objetosLeonardo Melo Santos
 
04 - C# laços de repetição, vetores e matrizes v1.0
04 - C# laços de repetição, vetores e matrizes v1.004 - C# laços de repetição, vetores e matrizes v1.0
04 - C# laços de repetição, vetores e matrizes v1.0César Augusto Pessôa
 
Prototipação de software
Prototipação de softwarePrototipação de software
Prototipação de softwareleopp
 
UML - Criando Diagramas Eficientes
UML - Criando Diagramas EficientesUML - Criando Diagramas Eficientes
UML - Criando Diagramas EficientesRodrigo Cascarrolho
 
Estrutura de dados - Introdução a linguagem C
Estrutura de dados - Introdução a linguagem CEstrutura de dados - Introdução a linguagem C
Estrutura de dados - Introdução a linguagem CAdriano Teixeira de Souza
 
Programação Orientação a Objetos - Herança
Programação Orientação a Objetos - HerançaProgramação Orientação a Objetos - Herança
Programação Orientação a Objetos - HerançaDaniel Brandão
 
AVALIAÇÃO DA QUALIDADE DE UM SISTEMA DE GESTÃO ACADÊMICA ATRAVÉS DA MINERAÇÃO...
AVALIAÇÃO DA QUALIDADE DE UM SISTEMA DE GESTÃO ACADÊMICA ATRAVÉS DA MINERAÇÃO...AVALIAÇÃO DA QUALIDADE DE UM SISTEMA DE GESTÃO ACADÊMICA ATRAVÉS DA MINERAÇÃO...
AVALIAÇÃO DA QUALIDADE DE UM SISTEMA DE GESTÃO ACADÊMICA ATRAVÉS DA MINERAÇÃO...Juliana Cindra
 
Estrutura de Dados - Aula 09 - Listas Simplesmente Encadeadas
Estrutura de Dados - Aula 09 - Listas Simplesmente EncadeadasEstrutura de Dados - Aula 09 - Listas Simplesmente Encadeadas
Estrutura de Dados - Aula 09 - Listas Simplesmente EncadeadasLeinylson Fontinele
 
Programação Orientada a Objetos
Programação Orientada a ObjetosProgramação Orientada a Objetos
Programação Orientada a ObjetosOrlando Junior
 

Mais procurados (20)

Estrutura de Dados Aula 13 - Árvores (conceito, elementos, tipos e utilizações)
Estrutura de Dados Aula 13 - Árvores (conceito, elementos, tipos e utilizações)Estrutura de Dados Aula 13 - Árvores (conceito, elementos, tipos e utilizações)
Estrutura de Dados Aula 13 - Árvores (conceito, elementos, tipos e utilizações)
 
Estrutura de Dados - Grafos
Estrutura de Dados - GrafosEstrutura de Dados - Grafos
Estrutura de Dados - Grafos
 
Apresentação sobre Árvores B
Apresentação sobre Árvores BApresentação sobre Árvores B
Apresentação sobre Árvores B
 
Árvores: Conceitos e binárias
Árvores:  Conceitos e bináriasÁrvores:  Conceitos e binárias
Árvores: Conceitos e binárias
 
POO - 14 - Vetores
POO - 14 - VetoresPOO - 14 - Vetores
POO - 14 - Vetores
 
Uml diagrama de sequencia
Uml diagrama de sequenciaUml diagrama de sequencia
Uml diagrama de sequencia
 
Conceitos básicos de programação orientada a objetos
Conceitos básicos de programação orientada a objetosConceitos básicos de programação orientada a objetos
Conceitos básicos de programação orientada a objetos
 
04 - C# laços de repetição, vetores e matrizes v1.0
04 - C# laços de repetição, vetores e matrizes v1.004 - C# laços de repetição, vetores e matrizes v1.0
04 - C# laços de repetição, vetores e matrizes v1.0
 
Prototipação de software
Prototipação de softwarePrototipação de software
Prototipação de software
 
Estrutura de dados - Pilhas
Estrutura de dados - PilhasEstrutura de dados - Pilhas
Estrutura de dados - Pilhas
 
UML - Criando Diagramas Eficientes
UML - Criando Diagramas EficientesUML - Criando Diagramas Eficientes
UML - Criando Diagramas Eficientes
 
Estrutura de dados - Introdução a linguagem C
Estrutura de dados - Introdução a linguagem CEstrutura de dados - Introdução a linguagem C
Estrutura de dados - Introdução a linguagem C
 
Gerência de Requisitos
Gerência de RequisitosGerência de Requisitos
Gerência de Requisitos
 
Estrutura de dados em Java - Filas
Estrutura de dados em Java - FilasEstrutura de dados em Java - Filas
Estrutura de dados em Java - Filas
 
Programação Orientação a Objetos - Herança
Programação Orientação a Objetos - HerançaProgramação Orientação a Objetos - Herança
Programação Orientação a Objetos - Herança
 
AVALIAÇÃO DA QUALIDADE DE UM SISTEMA DE GESTÃO ACADÊMICA ATRAVÉS DA MINERAÇÃO...
AVALIAÇÃO DA QUALIDADE DE UM SISTEMA DE GESTÃO ACADÊMICA ATRAVÉS DA MINERAÇÃO...AVALIAÇÃO DA QUALIDADE DE UM SISTEMA DE GESTÃO ACADÊMICA ATRAVÉS DA MINERAÇÃO...
AVALIAÇÃO DA QUALIDADE DE UM SISTEMA DE GESTÃO ACADÊMICA ATRAVÉS DA MINERAÇÃO...
 
LP1 P01 - Python.pdf
LP1 P01 - Python.pdfLP1 P01 - Python.pdf
LP1 P01 - Python.pdf
 
Estrutura de Dados - Aula 09 - Listas Simplesmente Encadeadas
Estrutura de Dados - Aula 09 - Listas Simplesmente EncadeadasEstrutura de Dados - Aula 09 - Listas Simplesmente Encadeadas
Estrutura de Dados - Aula 09 - Listas Simplesmente Encadeadas
 
Programação Orientada a Objetos
Programação Orientada a ObjetosProgramação Orientada a Objetos
Programação Orientada a Objetos
 
Recursividade
RecursividadeRecursividade
Recursividade
 

Destaque

Árvore b+ pesquisa e ordenação
Árvore b+ pesquisa e ordenaçãoÁrvore b+ pesquisa e ordenação
Árvore b+ pesquisa e ordenaçãoGustavo Chaves
 

Destaque (20)

Java script aula 04 - objeto array
Java script   aula 04 - objeto arrayJava script   aula 04 - objeto array
Java script aula 04 - objeto array
 
Aula 06 textos na web
Aula 06   textos na webAula 06   textos na web
Aula 06 textos na web
 
Aula 07 - lista linear
Aula 07 - lista linearAula 07 - lista linear
Aula 07 - lista linear
 
Aula 07 acessibilidade
Aula 07  acessibilidadeAula 07  acessibilidade
Aula 07 acessibilidade
 
Java script aula 07 - eventos
Java script   aula 07 - eventosJava script   aula 07 - eventos
Java script aula 07 - eventos
 
Java script aula 06 - dom
Java script   aula 06 - domJava script   aula 06 - dom
Java script aula 06 - dom
 
Java script aula 10 - angularjs
Java script   aula 10 - angularjsJava script   aula 10 - angularjs
Java script aula 10 - angularjs
 
OAC Aula 09 - Entrada e Saída
OAC Aula 09 - Entrada e SaídaOAC Aula 09 - Entrada e Saída
OAC Aula 09 - Entrada e Saída
 
Java script aula 08 - formulários
Java script   aula 08 - formuláriosJava script   aula 08 - formulários
Java script aula 08 - formulários
 
Aula 02 semiótica e cores
Aula 02   semiótica e coresAula 02   semiótica e cores
Aula 02 semiótica e cores
 
Aula 05 layout e composição do site
Aula 05   layout e composição do siteAula 05   layout e composição do site
Aula 05 layout e composição do site
 
Aula 04 layout e composição do site
Aula 04   layout e composição do siteAula 04   layout e composição do site
Aula 04 layout e composição do site
 
Java script aula 03 - objetos
Java script   aula 03 - objetosJava script   aula 03 - objetos
Java script aula 03 - objetos
 
Java script aula 09 - JQuery
Java script   aula 09 - JQueryJava script   aula 09 - JQuery
Java script aula 09 - JQuery
 
WDI - aula 07 - css com html
WDI - aula 07 - css com htmlWDI - aula 07 - css com html
WDI - aula 07 - css com html
 
Ed1
Ed1Ed1
Ed1
 
Arvores
ArvoresArvores
Arvores
 
Árvore b+ pesquisa e ordenação
Árvore b+ pesquisa e ordenaçãoÁrvore b+ pesquisa e ordenação
Árvore b+ pesquisa e ordenação
 
Java script aula 07 - j-query
Java script   aula 07 - j-queryJava script   aula 07 - j-query
Java script aula 07 - j-query
 
Árvores balanceadas - AVL
Árvores balanceadas - AVLÁrvores balanceadas - AVL
Árvores balanceadas - AVL
 

Mais de Cristiano Pires Martins (14)

Java script - funções
Java script - funçõesJava script - funções
Java script - funções
 
Aula 01 introdução
Aula 01   introduçãoAula 01   introdução
Aula 01 introdução
 
Aula 03 esquema de cores
Aula 03   esquema de coresAula 03   esquema de cores
Aula 03 esquema de cores
 
Aula 08-oac-execucao-de-programas
Aula 08-oac-execucao-de-programasAula 08-oac-execucao-de-programas
Aula 08-oac-execucao-de-programas
 
Aula 07-oac-processadores
Aula 07-oac-processadoresAula 07-oac-processadores
Aula 07-oac-processadores
 
Aula 06-oac-memoria-principal
Aula 06-oac-memoria-principalAula 06-oac-memoria-principal
Aula 06-oac-memoria-principal
 
Aula 05-oac-conceitos-de-logica-digital
Aula 05-oac-conceitos-de-logica-digitalAula 05-oac-conceitos-de-logica-digital
Aula 05-oac-conceitos-de-logica-digital
 
Aula 03-oac-componentes-de-um-sistema-de-computacao
Aula 03-oac-componentes-de-um-sistema-de-computacaoAula 03-oac-componentes-de-um-sistema-de-computacao
Aula 03-oac-componentes-de-um-sistema-de-computacao
 
Aula 02-oac-historia-da-computacao-part2
Aula 02-oac-historia-da-computacao-part2Aula 02-oac-historia-da-computacao-part2
Aula 02-oac-historia-da-computacao-part2
 
Aula 02-oac-historia-da-computacao-part1
Aula 02-oac-historia-da-computacao-part1Aula 02-oac-historia-da-computacao-part1
Aula 02-oac-historia-da-computacao-part1
 
Aula 01-oac-introducao-a-oac
Aula 01-oac-introducao-a-oacAula 01-oac-introducao-a-oac
Aula 01-oac-introducao-a-oac
 
Aula 10-oac-arquitetura-risc
Aula 10-oac-arquitetura-riscAula 10-oac-arquitetura-risc
Aula 10-oac-arquitetura-risc
 
Aula 06-sistemas de-arquivo
Aula 06-sistemas de-arquivoAula 06-sistemas de-arquivo
Aula 06-sistemas de-arquivo
 
Aula 04-gerenciamento-basico-de-memoria
Aula 04-gerenciamento-basico-de-memoriaAula 04-gerenciamento-basico-de-memoria
Aula 04-gerenciamento-basico-de-memoria
 

Árvores: conceitos, terminologia e operações básicas

  • 2. O jardineiro é jizus e as árveres somos nozes
  • 3. 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.
  • 4. 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
  • 5. 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.
  • 6. Hierarquia de Especialização Veículo MotoCarroHelicópteroAvião Aéreo Terrestre Aquático Motor Vela Remo Navio Iate Lancha
  • 8. Hierarquia de Dependência Diretor Superintendente Diretor Administrativo Diretor Fábrica Diretor Comercial Departamento Cont. Qualidade Departamento Manutenção Departamento Produção
  • 10. Terminologia • A terminologia não é padronizada; • Existem nomes diferentes para os mesmos conceitos em diferentes publicações.
  • 11. 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
  • 12. Terminologia • Subárvore: • Conjunto de nós, sendo todos subordinados a um único nó, externo a esta subárvore. Subárvores
  • 13. 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ó
  • 14. 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
  • 15. 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
  • 16. 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.
  • 17. 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.
  • 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 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.
  • 22. 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.
  • 23. 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.
  • 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 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
  • 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 de Encadeamento A E DCB F G A C / / /B / / D / F / / /E / / / G / / /
  • 32. 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.
  • 33. 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.
  • 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 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
  • 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á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
  • 38. 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