Upload
vannhan
View
217
Download
0
Embed Size (px)
Citation preview
Introdução a Árvores
Introdução a Árvores
SCC0202 - Algoritmos e Estruturas de Dados I
Prof. Fernando V. Paulovich*Baseado no material do Prof. Gustavo Batista
http://www.icmc.usp.br/[email protected]
Instituto de Ciências Matemáticas e de Computação (ICMC)Universidade de São Paulo (USP)
2 de outubro de 2013
Introdução a ÁrvoresIntrodução
Sumário
1 Introdução
2 Fundamentos e Terminologia
3 Representações Gráficas
4 Árvores N-árias
5 Exercícios
Introdução a ÁrvoresIntrodução
Sumário
1 Introdução
2 Fundamentos e Terminologia
3 Representações Gráficas
4 Árvores N-árias
5 Exercícios
Introdução a ÁrvoresIntrodução
Introdução
Estrutura de listas: organização linear dos dados, ondesua propriedade básica é a relação sequencial mantidaentre seus elementos
Estrutura de árvores: organização dos dados de formanão-linear mantendo um relacionamento hierárquico entreseus elementos
Introdução a ÁrvoresIntrodução
Introdução
Estrutura de listas: organização linear dos dados, ondesua propriedade básica é a relação sequencial mantidaentre seus elementosEstrutura de árvores: organização dos dados de formanão-linear mantendo um relacionamento hierárquico entreseus elementos
Introdução a ÁrvoresIntrodução
Listas Lineares
Complexidade de tempo para os problemasListar os alunos do departamento Dx? O(n)Listar os alunos do curso Cx? O(n)Idade média dos alunos do curso Cx? O(n)
Introdução a ÁrvoresIntrodução
Estrutura de árvore: exemplos
Algumas situações onde é necessária um representaçãobaseada na relação hierárquica entre os elementos
Árvores genealógicasOrganização de um livroRepresentação da estrutura organizacional de umainstituição
Introdução a ÁrvoresIntrodução
Estrutura de árvore: exemplo de árvoregenealógica
Introdução a ÁrvoresIntrodução
Estrutura de árvore: exemplo de organização deum livro
Introdução a ÁrvoresIntrodução
Estrutura de árvore: exemplo de estruturaorganizacional do ICMC
Introdução a ÁrvoresIntrodução
Justificativas/vantagens
Representatividade no relacionamento entre os dadosFacilidades na manipulação computacional dos dados
Utilizando essa abordagem para representar a EstruturaOrganizacional da USP, teríamos maior facilidade naextração de informações como
Total de professores de um departamentoTotal de salário dos funcionários de setor específicoOs diretores de cada centroEntre outras...
Introdução a ÁrvoresIntrodução
Justificativas/vantagens
Observe que para extrair informações específicas de umadeterminada ramificação da árvore não é necessário opercurso por toda a estrutura de informação, uma vezque o relacionamento entre os dados nos permite umaconsulta seletiva em regiões específicas da árvore
Introdução a ÁrvoresFundamentos e Terminologia
Sumário
1 Introdução
2 Fundamentos e Terminologia
3 Representações Gráficas
4 Árvores N-árias
5 Exercícios
Introdução a ÁrvoresFundamentos e Terminologia
Definição
Uma árvore enraizada é um conjunto finito deelementos denominados nós ou vértices tais que
T = ∅, a árvore é dita vaziaT = {r} ∪ {T1} ∪ {T2} ∪ {T3} ∪ . . . ∪ {Tn}
Um nó especial da árvore, r, é chamado de raiz da árvore
Os restantes constituem um único conjunto vazio ou sãodivididos em n ≥ 1 conjuntos disjuntos não vazios,T1, T2, T3, . . . , Tn, as subárvores de r, cada qual por suavez uma árvore
Introdução a ÁrvoresFundamentos e Terminologia
Definição
Assim para denotar uma árvore T usamosT = {r, T1, T2, T3, . . . , Tn}, com r a raiz da árvore e Tv asubárvore T com raiz em v
Note que a definição apresentada é recursiva!
Introdução a ÁrvoresFundamentos e Terminologia
Representação Aninhada
Uma sequencia S de 2n chaves, com n “{” e n “}” é ditaaninhada quando, em cada subsequencia de S, iniciada naposição 1 e com extremidade i < 2n, o número de “{” émaior do que o de “}”
Por exemplo, a sequencia {{}{}} é aninhada, mas asequencia {{}}{} não
Uma sequencia desse tipo pode ser usada para representaruma árvore
As sequencias de chaves representam as relações entre osnós da árvore – o rótulo de cada nó é inseridoimediatamente a direita da “{” correspondente
Introdução a ÁrvoresFundamentos e Terminologia
Representação Aninhada
ExemploTa = {A}Tb = {B, {C}}Tc ={D, {E, {F}}, {G, {H, {I}}, {J, {K}, {L}}, {M}}}
Introdução a ÁrvoresFundamentos e Terminologia
Representação Aninhada
ExercíciosTd = {2, {1}, {3}}Te = {4, {2, {1}, {3}}, {6, {5}, {7}}}Tf = {Joao, {Daniel, {Andres}, {Fernanda}},{Maria, {Marcos}, {Rafael}}}
Introdução a ÁrvoresFundamentos e Terminologia
Terminologias
Considerando a árvore Tc e a definição dada de árvoresanteriormente vejamos algumas terminologias básicas
O grau de um nó é o número de sub-árvoresrelacionadas aquele nó. Por exemplo: em Tc o grau donó D é 2, de G é 3 e dos nós K,L, I, F e M é 0 (zero)Nós com grau igual a zero não possuem sub-árvores,portanto são chamados nós folhas ou terminaisSe cada nó de uma árvore possui um grau máximo etodos os demais nós possuem o mesmo grau máximo,podemos definir este grau como o grau da árvore
Introdução a ÁrvoresFundamentos e Terminologia
Terminologias
Considerando a árvore Tc e a definição dada de árvoresanteriormente vejamos algumas terminologias básicas
O grau de um nó é o número de sub-árvoresrelacionadas aquele nó. Por exemplo: em Tc o grau donó D é 2, de G é 3 e dos nós K,L, I, F e M é 0 (zero)
Nós com grau igual a zero não possuem sub-árvores,portanto são chamados nós folhas ou terminaisSe cada nó de uma árvore possui um grau máximo etodos os demais nós possuem o mesmo grau máximo,podemos definir este grau como o grau da árvore
Introdução a ÁrvoresFundamentos e Terminologia
Terminologias
Considerando a árvore Tc e a definição dada de árvoresanteriormente vejamos algumas terminologias básicas
O grau de um nó é o número de sub-árvoresrelacionadas aquele nó. Por exemplo: em Tc o grau donó D é 2, de G é 3 e dos nós K,L, I, F e M é 0 (zero)Nós com grau igual a zero não possuem sub-árvores,portanto são chamados nós folhas ou terminais
Se cada nó de uma árvore possui um grau máximo etodos os demais nós possuem o mesmo grau máximo,podemos definir este grau como o grau da árvore
Introdução a ÁrvoresFundamentos e Terminologia
Terminologias
Considerando a árvore Tc e a definição dada de árvoresanteriormente vejamos algumas terminologias básicas
O grau de um nó é o número de sub-árvoresrelacionadas aquele nó. Por exemplo: em Tc o grau donó D é 2, de G é 3 e dos nós K,L, I, F e M é 0 (zero)Nós com grau igual a zero não possuem sub-árvores,portanto são chamados nós folhas ou terminaisSe cada nó de uma árvore possui um grau máximo etodos os demais nós possuem o mesmo grau máximo,podemos definir este grau como o grau da árvore
Introdução a ÁrvoresFundamentos e Terminologia
Terminologias
Introdução a ÁrvoresFundamentos e Terminologia
Terminologias
Para identificar os nós na estrutura, usamosdenominações da relação hierárquica existente em umaárvore genealógica
Cada raiz ri da sub-árvore Ti é chamada filho de r. Otermo neto é usado de forma análogaO nó raiz r da árvore T é o pai de todas as raízes ri dassub-árvores Ti. O termo avô é definido de forma análogaDuas raízes ri e rj das sub-árvores Ti e Tj de T sãoditas irmãs
Introdução a ÁrvoresFundamentos e Terminologia
Terminologias
Para identificar os nós na estrutura, usamosdenominações da relação hierárquica existente em umaárvore genealógica
Cada raiz ri da sub-árvore Ti é chamada filho de r. Otermo neto é usado de forma análoga
O nó raiz r da árvore T é o pai de todas as raízes ri dassub-árvores Ti. O termo avô é definido de forma análogaDuas raízes ri e rj das sub-árvores Ti e Tj de T sãoditas irmãs
Introdução a ÁrvoresFundamentos e Terminologia
Terminologias
Para identificar os nós na estrutura, usamosdenominações da relação hierárquica existente em umaárvore genealógica
Cada raiz ri da sub-árvore Ti é chamada filho de r. Otermo neto é usado de forma análogaO nó raiz r da árvore T é o pai de todas as raízes ri dassub-árvores Ti. O termo avô é definido de forma análoga
Duas raízes ri e rj das sub-árvores Ti e Tj de T sãoditas irmãs
Introdução a ÁrvoresFundamentos e Terminologia
Terminologias
Para identificar os nós na estrutura, usamosdenominações da relação hierárquica existente em umaárvore genealógica
Cada raiz ri da sub-árvore Ti é chamada filho de r. Otermo neto é usado de forma análogaO nó raiz r da árvore T é o pai de todas as raízes ri dassub-árvores Ti. O termo avô é definido de forma análogaDuas raízes ri e rj das sub-árvores Ti e Tj de T sãoditas irmãs
Introdução a ÁrvoresFundamentos e Terminologia
Terminologias
Introdução a ÁrvoresFundamentos e Terminologia
Definição
Outras definições importantes são obtidas a partir dadistância de um nó em relação aos outros nós da árvore
Caminho: sequência não vazia de nós,P = {r1, r2, . . . , rk}, onde o i-ésimo nó ri da sequênciaé pai de ri+1
Comprimento: tomando a definição de caminho, ocomprimento de um caminho P é igual a k − 1
Introdução a ÁrvoresFundamentos e Terminologia
Definição
Outras definições importantes são obtidas a partir dadistância de um nó em relação aos outros nós da árvore
Caminho: sequência não vazia de nós,P = {r1, r2, . . . , rk}, onde o i-ésimo nó ri da sequênciaé pai de ri+1
Comprimento: tomando a definição de caminho, ocomprimento de um caminho P é igual a k − 1
Introdução a ÁrvoresFundamentos e Terminologia
Definição
Outras definições importantes são obtidas a partir dadistância de um nó em relação aos outros nós da árvore
Caminho: sequência não vazia de nós,P = {r1, r2, . . . , rk}, onde o i-ésimo nó ri da sequênciaé pai de ri+1
Comprimento: tomando a definição de caminho, ocomprimento de um caminho P é igual a k − 1
Introdução a ÁrvoresFundamentos e Terminologia
Definição
Introdução a ÁrvoresFundamentos e Terminologia
Terminologia
Altura de um nó: a altura de um nó ri é o comprimentodo caminho mais longo do nó ri a uma folha
As folhas têm altura 0 (zero)
Altura de uma árvore: é igual a altura da raiz r de T
Profundidade: a profundidade de um nó ri de umaárvore T é o comprimento do único caminho em T entrea raiz r e o nó ri
A raiz está no nível 0 (zero)A maior profundidade entre todos os nós é a altura daárvore
Nível: um conjunto de nós com a mesma profundidade édenominado nível da árvore
Introdução a ÁrvoresFundamentos e Terminologia
Terminologia
Altura de um nó: a altura de um nó ri é o comprimentodo caminho mais longo do nó ri a uma folha
As folhas têm altura 0 (zero)Altura de uma árvore: é igual a altura da raiz r de T
Profundidade: a profundidade de um nó ri de umaárvore T é o comprimento do único caminho em T entrea raiz r e o nó ri
A raiz está no nível 0 (zero)A maior profundidade entre todos os nós é a altura daárvore
Nível: um conjunto de nós com a mesma profundidade édenominado nível da árvore
Introdução a ÁrvoresFundamentos e Terminologia
Terminologia
Altura de um nó: a altura de um nó ri é o comprimentodo caminho mais longo do nó ri a uma folha
As folhas têm altura 0 (zero)Altura de uma árvore: é igual a altura da raiz r de T
Profundidade: a profundidade de um nó ri de umaárvore T é o comprimento do único caminho em T entrea raiz r e o nó ri
A raiz está no nível 0 (zero)A maior profundidade entre todos os nós é a altura daárvore
Nível: um conjunto de nós com a mesma profundidade édenominado nível da árvore
Introdução a ÁrvoresFundamentos e Terminologia
Terminologia
Altura de um nó: a altura de um nó ri é o comprimentodo caminho mais longo do nó ri a uma folha
As folhas têm altura 0 (zero)Altura de uma árvore: é igual a altura da raiz r de T
Profundidade: a profundidade de um nó ri de umaárvore T é o comprimento do único caminho em T entrea raiz r e o nó ri
A raiz está no nível 0 (zero)A maior profundidade entre todos os nós é a altura daárvore
Nível: um conjunto de nós com a mesma profundidade édenominado nível da árvore
Introdução a ÁrvoresFundamentos e Terminologia
Terminologia
Introdução a ÁrvoresFundamentos e Terminologia
Terminologia
Ascendência e descendência: considerando dois nós rie rj , o nó ri é uma ancestral de rj se existe um caminhoem T de ri a rj , tal que, o comprimento de P entre ri erj seja diferente de 0 (zero)
De forma análoga se define o descendente de um nó
Introdução a ÁrvoresRepresentações Gráficas
Sumário
1 Introdução
2 Fundamentos e Terminologia
3 Representações Gráficas
4 Árvores N-árias
5 Exercícios
Introdução a ÁrvoresRepresentações Gráficas
Representações gráficas para árvores
A estrutura de árvore pode ser representada graficamentede diversas maneiras, dentre elas temos
conjuntos aninhadosidentaçãografos, sendo esta última a mais utilizada
Introdução a ÁrvoresRepresentações Gráficas
Representação em conjuntos aninhados
Introdução a ÁrvoresRepresentações Gráficas
Representação com identação
Introdução a ÁrvoresRepresentações Gráficas
Representação utilizando grafos
Introdução a ÁrvoresÁrvores N-árias
Sumário
1 Introdução
2 Fundamentos e Terminologia
3 Representações Gráficas
4 Árvores N-árias
5 Exercícios
Introdução a ÁrvoresÁrvores N-árias
Árvores N-árias
Uma árvore N-ária T é um conjunto finito de nós com asseguintes propriedades
O conjunto é vazio, T = ∅O conjunto consiste de um nó especial r, que é a raiz deT , e os restantes podem ser sempre divididos em nsubconjuntos disjuntos, as i-ésimas subárvores de r,1 ≤ i ≤ n, as quais também são árvores N-árias
A i-ésima subárvore de um nó v de T , se existir, édenominada i-ésimo filho de v
Introdução a ÁrvoresExercícios
Sumário
1 Introdução
2 Fundamentos e Terminologia
3 Representações Gráficas
4 Árvores N-árias
5 Exercícios
Introdução a ÁrvoresExercícios
Exercícios
1 Considere a seguinte árvore:Te = {a, {b, {c, {d}}, {e, {f}, {g}}}, {h, {i}}}
Obtenha as representações por conjunto, identação egrafosEncontre o grau, altura e profundidade de cada nóEncontre todos os caminhos possíveis a partir da raizcom seus respectivos comprimentos árvore binária
2 Partindo da definição de árvores n-árias, encontre adefinição para árvores binárias