47
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/~paulovic [email protected] Instituto de Ciências Matemáticas e de Computação (ICMC) Universidade de São Paulo (USP) 2 de outubro de 2013

Algoritmos e Estruturas de Dados I - lcad.icmc.usp.brpaulovic/aulas/ALG-I/SCC0202-aula-09-Arvores... · IntroduçãoaÁrvores IntroduçãoaÁrvores SCC0202 - Algoritmos e Estruturas

  • Upload
    vannhan

  • View
    217

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Algoritmos e Estruturas de Dados I - lcad.icmc.usp.brpaulovic/aulas/ALG-I/SCC0202-aula-09-Arvores... · IntroduçãoaÁrvores IntroduçãoaÁrvores SCC0202 - Algoritmos e Estruturas

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

Page 2: Algoritmos e Estruturas de Dados I - lcad.icmc.usp.brpaulovic/aulas/ALG-I/SCC0202-aula-09-Arvores... · IntroduçãoaÁrvores IntroduçãoaÁrvores SCC0202 - Algoritmos e Estruturas

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

Page 3: Algoritmos e Estruturas de Dados I - lcad.icmc.usp.brpaulovic/aulas/ALG-I/SCC0202-aula-09-Arvores... · IntroduçãoaÁrvores IntroduçãoaÁrvores SCC0202 - Algoritmos e Estruturas

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

Page 4: Algoritmos e Estruturas de Dados I - lcad.icmc.usp.brpaulovic/aulas/ALG-I/SCC0202-aula-09-Arvores... · IntroduçãoaÁrvores IntroduçãoaÁrvores SCC0202 - Algoritmos e Estruturas

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

Page 5: Algoritmos e Estruturas de Dados I - lcad.icmc.usp.brpaulovic/aulas/ALG-I/SCC0202-aula-09-Arvores... · IntroduçãoaÁrvores IntroduçãoaÁrvores SCC0202 - Algoritmos e Estruturas

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

Page 6: Algoritmos e Estruturas de Dados I - lcad.icmc.usp.brpaulovic/aulas/ALG-I/SCC0202-aula-09-Arvores... · IntroduçãoaÁrvores IntroduçãoaÁrvores SCC0202 - Algoritmos e Estruturas

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)

Page 7: Algoritmos e Estruturas de Dados I - lcad.icmc.usp.brpaulovic/aulas/ALG-I/SCC0202-aula-09-Arvores... · IntroduçãoaÁrvores IntroduçãoaÁrvores SCC0202 - Algoritmos e Estruturas

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

Page 8: Algoritmos e Estruturas de Dados I - lcad.icmc.usp.brpaulovic/aulas/ALG-I/SCC0202-aula-09-Arvores... · IntroduçãoaÁrvores IntroduçãoaÁrvores SCC0202 - Algoritmos e Estruturas

Introdução a ÁrvoresIntrodução

Estrutura de árvore: exemplo de árvoregenealógica

Page 9: Algoritmos e Estruturas de Dados I - lcad.icmc.usp.brpaulovic/aulas/ALG-I/SCC0202-aula-09-Arvores... · IntroduçãoaÁrvores IntroduçãoaÁrvores SCC0202 - Algoritmos e Estruturas

Introdução a ÁrvoresIntrodução

Estrutura de árvore: exemplo de organização deum livro

Page 10: Algoritmos e Estruturas de Dados I - lcad.icmc.usp.brpaulovic/aulas/ALG-I/SCC0202-aula-09-Arvores... · IntroduçãoaÁrvores IntroduçãoaÁrvores SCC0202 - Algoritmos e Estruturas

Introdução a ÁrvoresIntrodução

Estrutura de árvore: exemplo de estruturaorganizacional do ICMC

Page 11: Algoritmos e Estruturas de Dados I - lcad.icmc.usp.brpaulovic/aulas/ALG-I/SCC0202-aula-09-Arvores... · IntroduçãoaÁrvores IntroduçãoaÁrvores SCC0202 - Algoritmos e Estruturas

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...

Page 12: Algoritmos e Estruturas de Dados I - lcad.icmc.usp.brpaulovic/aulas/ALG-I/SCC0202-aula-09-Arvores... · IntroduçãoaÁrvores IntroduçãoaÁrvores SCC0202 - Algoritmos e Estruturas

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

Page 13: Algoritmos e Estruturas de Dados I - lcad.icmc.usp.brpaulovic/aulas/ALG-I/SCC0202-aula-09-Arvores... · IntroduçãoaÁrvores IntroduçãoaÁrvores SCC0202 - Algoritmos e Estruturas

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

Page 14: Algoritmos e Estruturas de Dados I - lcad.icmc.usp.brpaulovic/aulas/ALG-I/SCC0202-aula-09-Arvores... · IntroduçãoaÁrvores IntroduçãoaÁrvores SCC0202 - Algoritmos e Estruturas

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

Page 15: Algoritmos e Estruturas de Dados I - lcad.icmc.usp.brpaulovic/aulas/ALG-I/SCC0202-aula-09-Arvores... · IntroduçãoaÁrvores IntroduçãoaÁrvores SCC0202 - Algoritmos e Estruturas

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!

Page 16: Algoritmos e Estruturas de Dados I - lcad.icmc.usp.brpaulovic/aulas/ALG-I/SCC0202-aula-09-Arvores... · IntroduçãoaÁrvores IntroduçãoaÁrvores SCC0202 - Algoritmos e Estruturas

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

Page 17: Algoritmos e Estruturas de Dados I - lcad.icmc.usp.brpaulovic/aulas/ALG-I/SCC0202-aula-09-Arvores... · IntroduçãoaÁrvores IntroduçãoaÁrvores SCC0202 - Algoritmos e Estruturas

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}}}

Page 18: Algoritmos e Estruturas de Dados I - lcad.icmc.usp.brpaulovic/aulas/ALG-I/SCC0202-aula-09-Arvores... · IntroduçãoaÁrvores IntroduçãoaÁrvores SCC0202 - Algoritmos e Estruturas

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}}}

Page 19: Algoritmos e Estruturas de Dados I - lcad.icmc.usp.brpaulovic/aulas/ALG-I/SCC0202-aula-09-Arvores... · IntroduçãoaÁrvores IntroduçãoaÁrvores SCC0202 - Algoritmos e Estruturas

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

Page 20: Algoritmos e Estruturas de Dados I - lcad.icmc.usp.brpaulovic/aulas/ALG-I/SCC0202-aula-09-Arvores... · IntroduçãoaÁrvores IntroduçãoaÁrvores SCC0202 - Algoritmos e Estruturas

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

Page 21: Algoritmos e Estruturas de Dados I - lcad.icmc.usp.brpaulovic/aulas/ALG-I/SCC0202-aula-09-Arvores... · IntroduçãoaÁrvores IntroduçãoaÁrvores SCC0202 - Algoritmos e Estruturas

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

Page 22: Algoritmos e Estruturas de Dados I - lcad.icmc.usp.brpaulovic/aulas/ALG-I/SCC0202-aula-09-Arvores... · IntroduçãoaÁrvores IntroduçãoaÁrvores SCC0202 - Algoritmos e Estruturas

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

Page 23: Algoritmos e Estruturas de Dados I - lcad.icmc.usp.brpaulovic/aulas/ALG-I/SCC0202-aula-09-Arvores... · IntroduçãoaÁrvores IntroduçãoaÁrvores SCC0202 - Algoritmos e Estruturas

Introdução a ÁrvoresFundamentos e Terminologia

Terminologias

Page 24: Algoritmos e Estruturas de Dados I - lcad.icmc.usp.brpaulovic/aulas/ALG-I/SCC0202-aula-09-Arvores... · IntroduçãoaÁrvores IntroduçãoaÁrvores SCC0202 - Algoritmos e Estruturas

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

Page 25: Algoritmos e Estruturas de Dados I - lcad.icmc.usp.brpaulovic/aulas/ALG-I/SCC0202-aula-09-Arvores... · IntroduçãoaÁrvores IntroduçãoaÁrvores SCC0202 - Algoritmos e Estruturas

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

Page 26: Algoritmos e Estruturas de Dados I - lcad.icmc.usp.brpaulovic/aulas/ALG-I/SCC0202-aula-09-Arvores... · IntroduçãoaÁrvores IntroduçãoaÁrvores SCC0202 - Algoritmos e Estruturas

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

Page 27: Algoritmos e Estruturas de Dados I - lcad.icmc.usp.brpaulovic/aulas/ALG-I/SCC0202-aula-09-Arvores... · IntroduçãoaÁrvores IntroduçãoaÁrvores SCC0202 - Algoritmos e Estruturas

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

Page 28: Algoritmos e Estruturas de Dados I - lcad.icmc.usp.brpaulovic/aulas/ALG-I/SCC0202-aula-09-Arvores... · IntroduçãoaÁrvores IntroduçãoaÁrvores SCC0202 - Algoritmos e Estruturas

Introdução a ÁrvoresFundamentos e Terminologia

Terminologias

Page 29: Algoritmos e Estruturas de Dados I - lcad.icmc.usp.brpaulovic/aulas/ALG-I/SCC0202-aula-09-Arvores... · IntroduçãoaÁrvores IntroduçãoaÁrvores SCC0202 - Algoritmos e Estruturas

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

Page 30: Algoritmos e Estruturas de Dados I - lcad.icmc.usp.brpaulovic/aulas/ALG-I/SCC0202-aula-09-Arvores... · IntroduçãoaÁrvores IntroduçãoaÁrvores SCC0202 - Algoritmos e Estruturas

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

Page 31: Algoritmos e Estruturas de Dados I - lcad.icmc.usp.brpaulovic/aulas/ALG-I/SCC0202-aula-09-Arvores... · IntroduçãoaÁrvores IntroduçãoaÁrvores SCC0202 - Algoritmos e Estruturas

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

Page 32: Algoritmos e Estruturas de Dados I - lcad.icmc.usp.brpaulovic/aulas/ALG-I/SCC0202-aula-09-Arvores... · IntroduçãoaÁrvores IntroduçãoaÁrvores SCC0202 - Algoritmos e Estruturas

Introdução a ÁrvoresFundamentos e Terminologia

Definição

Page 33: Algoritmos e Estruturas de Dados I - lcad.icmc.usp.brpaulovic/aulas/ALG-I/SCC0202-aula-09-Arvores... · IntroduçãoaÁrvores IntroduçãoaÁrvores SCC0202 - Algoritmos e Estruturas

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

Page 34: Algoritmos e Estruturas de Dados I - lcad.icmc.usp.brpaulovic/aulas/ALG-I/SCC0202-aula-09-Arvores... · IntroduçãoaÁrvores IntroduçãoaÁrvores SCC0202 - Algoritmos e Estruturas

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

Page 35: Algoritmos e Estruturas de Dados I - lcad.icmc.usp.brpaulovic/aulas/ALG-I/SCC0202-aula-09-Arvores... · IntroduçãoaÁrvores IntroduçãoaÁrvores SCC0202 - Algoritmos e Estruturas

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

Page 36: Algoritmos e Estruturas de Dados I - lcad.icmc.usp.brpaulovic/aulas/ALG-I/SCC0202-aula-09-Arvores... · IntroduçãoaÁrvores IntroduçãoaÁrvores SCC0202 - Algoritmos e Estruturas

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

Page 37: Algoritmos e Estruturas de Dados I - lcad.icmc.usp.brpaulovic/aulas/ALG-I/SCC0202-aula-09-Arvores... · IntroduçãoaÁrvores IntroduçãoaÁrvores SCC0202 - Algoritmos e Estruturas

Introdução a ÁrvoresFundamentos e Terminologia

Terminologia

Page 38: Algoritmos e Estruturas de Dados I - lcad.icmc.usp.brpaulovic/aulas/ALG-I/SCC0202-aula-09-Arvores... · IntroduçãoaÁrvores IntroduçãoaÁrvores SCC0202 - Algoritmos e Estruturas

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ó

Page 39: Algoritmos e Estruturas de Dados I - lcad.icmc.usp.brpaulovic/aulas/ALG-I/SCC0202-aula-09-Arvores... · IntroduçãoaÁrvores IntroduçãoaÁrvores SCC0202 - Algoritmos e Estruturas

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

Page 40: Algoritmos e Estruturas de Dados I - lcad.icmc.usp.brpaulovic/aulas/ALG-I/SCC0202-aula-09-Arvores... · IntroduçãoaÁrvores IntroduçãoaÁrvores SCC0202 - Algoritmos e Estruturas

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

Page 41: Algoritmos e Estruturas de Dados I - lcad.icmc.usp.brpaulovic/aulas/ALG-I/SCC0202-aula-09-Arvores... · IntroduçãoaÁrvores IntroduçãoaÁrvores SCC0202 - Algoritmos e Estruturas

Introdução a ÁrvoresRepresentações Gráficas

Representação em conjuntos aninhados

Page 42: Algoritmos e Estruturas de Dados I - lcad.icmc.usp.brpaulovic/aulas/ALG-I/SCC0202-aula-09-Arvores... · IntroduçãoaÁrvores IntroduçãoaÁrvores SCC0202 - Algoritmos e Estruturas

Introdução a ÁrvoresRepresentações Gráficas

Representação com identação

Page 43: Algoritmos e Estruturas de Dados I - lcad.icmc.usp.brpaulovic/aulas/ALG-I/SCC0202-aula-09-Arvores... · IntroduçãoaÁrvores IntroduçãoaÁrvores SCC0202 - Algoritmos e Estruturas

Introdução a ÁrvoresRepresentações Gráficas

Representação utilizando grafos

Page 44: Algoritmos e Estruturas de Dados I - lcad.icmc.usp.brpaulovic/aulas/ALG-I/SCC0202-aula-09-Arvores... · IntroduçãoaÁrvores IntroduçãoaÁrvores SCC0202 - Algoritmos e Estruturas

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

Page 45: Algoritmos e Estruturas de Dados I - lcad.icmc.usp.brpaulovic/aulas/ALG-I/SCC0202-aula-09-Arvores... · IntroduçãoaÁrvores IntroduçãoaÁrvores SCC0202 - Algoritmos e Estruturas

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

Page 46: Algoritmos e Estruturas de Dados I - lcad.icmc.usp.brpaulovic/aulas/ALG-I/SCC0202-aula-09-Arvores... · IntroduçãoaÁrvores IntroduçãoaÁrvores SCC0202 - Algoritmos e Estruturas

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

Page 47: Algoritmos e Estruturas de Dados I - lcad.icmc.usp.brpaulovic/aulas/ALG-I/SCC0202-aula-09-Arvores... · IntroduçãoaÁrvores IntroduçãoaÁrvores SCC0202 - Algoritmos e Estruturas

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