Estrutura de Dados Aula 13 - Árvores (conceito, elementos, tipos e utilizações)
leinylson
1,457 views
118 slides
May 29, 2016
Slide 1 of 118
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
About This Presentation
Slides da aula de Estrutura de Daddos
Size: 3.41 MB
Language: pt
Added: May 29, 2016
Slides: 118 pages
Slide Content
# Estrutura de Dados #
Aula 13 –Árvores
conceito, elementos, tipos e utilizações
Prof. Leinylson Fontinele Pereira
Na aula anterior...
Listas Duplamente Encadeadas
#Propriedades
#Operações fundamentais
12:17
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
Introdução
12:17 3
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
O que vamos aprender?
Árvores
#Conceito
#Componentes
#Tipos de árvores
#Onde são utilizadas?
12:17
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
Vamos começar?
12:17 5
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
12:17
O que é uma Árvore?
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
12:18
Algumas Árvores...
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
O que é uma Árvore?
12:18
Sãoumtipoespecialdegrafo
Qualquerpardevértices(nós)está
conectadoaapenasumaaresta
Grafoconexo(todosestãoconectados)
Acíclico(nãopossuiciclos)
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
Formas de Representação
12:18
Grafo
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
Diagrama de Venn
O que é uma Árvore?
12:18
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
Árvores
12:18
Asárvoressãoumadasestruturadedados
maisimportantesdaáreadacomputação
Utilizadaemmuitasaplicaçõesdomundoreal
Osrelacionamentoslógicosentreosdados
representamalgumadependênciadehierarquia
oucomposiçãoentreosnodos;
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
Árvores: Conceitos Básicos
12:18
As linhas que unem 2 nodos representam os relacionamentos lógicos e as
dependências de subordinação existentes entre eles
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
Árvores: Conceitos Básicos
12:18
Relacionamentosdesubordinação,formandohierarquias,podem
apresentardiferentessignificados
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
Hierarquia de Especialização
12:18
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
Hierarquia de Composição
12:18
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
Hierarquia de Dependência
12:18
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
Representação Gráfica de uma Árvore
12:18
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
Terminologia
12:18
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
Aterminologianãoépadronizada;
Existemnomesdiferentesparaos
mesmosconceitosemdiferentes
publicações.
Terminologia
12:18
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
Raiz(root)
Todososoutrosnósdaárvoresãosubordinadosaele
Oacessoatodososnósésempreapartirdele
Nósdescendentes:
Relaçãodedependênciacomonómaisacima
Terminologia
12:18
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
Casoonúmerodenóssejadiferente
dezero,existesempreumaraiz;
Casoonúmerodenóssejazero,é
denominadavazia.
Terminologia
12:18
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
Terminologia
12:18
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
Subárvore
Conjuntodenóssubordinadosaumúniconó,externoaestasubárvore
Terminologia
12:18
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
GraudeUmNó
Númerodesubárvoresquesãosubordinadasdiretamenteaessenó.
GraudeumaÁrvore
Éomaiorvalordentreosgrausdetodososseusnós.
Terminologia
12:18
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
Terminologia
12:18
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
FolhaouTerminal(externo)
Sãoosnósdegrauzero
Nódederivação(interno)
Nósdegraumaiordoquezeroequeapresentamumasubárvore
Terminologia
12:18
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
Terminologia
12:18
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
NíveldeumNó
Númerodeligaçõesentreestenóearaizdaárvoremaisum
Caminho
Sequênciadenósconsecutivosdistintosentredoisnós
ComprimentodoCaminho
Númerodeníveisentreosdoisnósmenosum
Terminologia
12:18
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
Terminologia
12:18
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
AlturaouProfundidade
Éonúmerodenósdomaiorcaminhodestenóatéumde
seusdescendentes-folha
Aalturadeumaárvoreéigualaomaiorníveldeseusnós
Todososnósfolhatemaltura1.
Terminologia
12:18
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
Floresta
Conjuntodezerooumaisárvoresdisjuntas
Árvoreordenada
Quandoaordemdesuassubárvoresérelevanteparaa
aplicaçãoqueestásendorepresentadaatravésdesta
estruturadedados.
Terminologia
12:18
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
Árvore Binária (BinaryTree)
12:18
Quandoapresentarnomáximograu2emcadanó
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
Árvore Binária (BinaryTree)
12:18
Ograudecadanópodeser0,1ou2
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
Árvore Estritamente Binária
12:18
Cadanópossui0ou2subárvores
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
Árvore Binária (BinaryTree)
12:18
Quandoapresentarnomáximograu2emcadanó
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
Árvore Binária: Tipos de Varreduras
12:18
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
Árvore Binária: Contagem dos Nós
12:18
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
Árvores Binárias de Busca
12:18
Considereumaárvorebinária
cujosnóstêmumcampochave
deumtipolinearmente
ordenado,ouseja,deumtipo
(comonúmeros,caracteres,e
strings)queadmite
comparações.
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
Árvores Binárias de Busca
12:18
Umaárvorebináriaédebusca(emrelaçãoaocampochave)
secadanóXtemaseguintepropriedade:
AchavedeXémaiorouigualàchavedequalquernónasubárvore
esquerdadeXemenorouigualàchavedequalquernónasubárvore
direitadeX.
Emoutraspalavras,sexéumnóqualquerentãoy->chave≤
x->chave≤z->chaveparatodonóynasubárvoreesquerda
dexetodonóznasubárvoredireitadex.
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
Árvores Binárias de Busca
12:18
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
Árvores Binárias de Busca: versão recursiva
12:18
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
Árvores Binárias de Busca: versão iterativa
12:18
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
Árvores Binárias de Busca: versão iterativa
12:18
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
Nopiorcaso,abuscaconsometempoproporcionalàaltura
daárvore.Seaárvoreforbalanceada,oconsumoserá
proporcionalalogn,sendononúmerodenós.
Essetempoédamesmaordemqueabuscabinárianumvetor
ordenado.
Árvores Binárias de Busca: Inserção
12:18
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
Considereoseguinteproblema:Inserirumnovonó,comchavek,em
umaárvoredebusca.Éclaroqueaárvoreresultantedevetambémser
debusca.Onovonótemaformadeumafolhaavulsaepodesercriado
assim:
Árvores Binárias de Busca: Inserção
12:18
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
Árvores Binárias de Busca: Remoção
12:18
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
Problema:Removerumnódeumaárvoredebuscadetal
formaqueaárvorecontinuesendodebusca.
Comecemostratandodocasoemqueonóaserremovidoéa
raizdaárvore.Searaiznãotemumdosfilhos,bastaqueo
outrofilhoassumaopapelderaiz.Senão,façacomqueonó
anterioràraiznaordeme-r-dassumaopapelderaiz.
Árvores Binárias de Busca: Remoção
12:18
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
Árvores Binárias de Busca: Remoção
12:18
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
Árvores Binárias de Busca: Remoção
12:18
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
Aexclusãodeumnóéumprocessomaiscomplexo.Paraexcluirumnódeuma
árvorebináriadebusca,hádeseconsiderartrêscasosdistintosparaaexclusão:
Árvores Binárias de Busca: Remoção
12:18
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
Exclusãonafolha
Aexclusãonafolhaéamaissimples,bastaremovê-lodaárvore.
Árvores Binárias de Busca: Remoção
12:18
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
Exclusãodeumnócomumfilho
Excluindo-o,ofilhosobeparaaposiçãodopai.
Árvores Binárias de Busca: Remoção
12:18
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
Exclusãodeumnócomdoisfilhos
Nestecaso,pode-seoperardeduasmaneirasdiferentes.Pode-sesubstituiro
valordonóaserretiradopelovalorsucessor(onómaisàesquerdadasubárvore
direita)
Oupelovalorantecessor(onómaisàdireitadasubárvoreesquerda),
removendo-seaíonósucessor(ouantecessor).
Árvores Binárias de Busca: Remoção
12:18
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
Árvore ??????-ária
12:18
Quandoapresentarnomáximograu??????emcadanó
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
Árvore Isomorfa
12:18
Quandoépossívelquesetornemcoincidentes
atravésdeumapermutaçãonaordemdas
subárvoresdeseusnós
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
Árvores Balanceadas (Equilibrada)
12:18
Éaquelanaqualexisteuma
distribuiçãoequilibradaentre
osnósdaárvore
Existeumadiferençamínima
entretodasasfolhasearaiz.
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
Árvores Cheia ou Completamente Balanceada
12:18
Éaquelaemquetodasasfolhasestãoauma
distânciaigualdaraiz.
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
Árvore Binária Quase Completa
12:18
Adiferençadealturaentreassubárvoresde
qualquernóénomáximo1.
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
Árvores AVL
12:18
Árvorebalanceadapelaaltura
Asalturasdasduassubárvoresapartirdecada
nódiferemnomáximoemumaunidade
Asoperaçõesdebusca,inserçãoeremoçãode
elementospossuemcomplexidadeO(logn)
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
Árvores AVL
12:18
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
Árvores Usando Contiguidade Física
12:18
Não é intuitiva como era no caso das Listas Lineares
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
Árvore Ternária Usando Contiguidade Física
12:18
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
A B C D ʎ E ʎ ʎ ʎ ʎ F G ...
1 2 3 4 5 6 7 8 9 10 11 12 13
Árvores Implementadas por Encadeamento
12:18
Oacessosedásemprepelaraiz
Osdemaisnóssãoalcançadossomentepelosendereçosdoselos
Ahierarquiadesubordinação,implícitanasárvores,fica
perfeitamenterepresentada.
Todososnósdaárvoredeveapresentaramesmaestrutura.
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
Árvores Implementadas por Encadeamento
12:18
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
A
B/ / C/// D /
E/// F/// G///
Vantagens da Implementação por Encadeamento
12:18
ÉbastanteIntuitiva
InserçãoeRemoçãosãosimples,constituindo
basicamentenaatualizaçãodeendereçosnos
camposdeelodealgunsnós.
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
Desvantagens da Implementação por Encadeamento
12:18
Árvorescujosnóstêmgrauvariadoapresentam
geralmentemuitoscamposdeeloociosos
OAcessoaosnóspodeserdificultadodevidoà
necessidadedeacessarqualquernóssempre
atravésdaraiz.
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
Concluindo ...
12:18 87
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
Exercício 1
12:18
Considereaárvorecomrepresentaçãoaninhada
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
( A ( B ) ( C ( F ( H ) ( I ) )) ( D) ( E ( G ) ) )
Nesta aula aprendemos...
Árvores
#Conceito
#Componentes
#Tipos de árvores
#Onde são utilizadas?
12:18
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
Material: https://sites.google.com/site/leinylsonnassau
12:18
Material baseado nas aulas de:
Árvores, Cristiano Pires Martins
Árvores binárias, Paulo Feofiloff
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
Na próxima aula veremos...
Técnicas de Pesquisa e Ordenação
#Conceitos
#Algoritmos
12:18
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
Prática
12:18 94
As aulas práticas foram baseadas no material de
Linguagem C Descomplicada , Dr. André R. Backes.
Disponível em: https://programacaodescomplicada.wordpress.com/
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)
12:18 95
Árvore Binária
Estrutura de Dados: Aula 13 –Árvores (conceito, elementos, tipos e utilizações)