Baixe o app para aproveitar ainda mais
Prévia do material em texto
Algoritmos e Algoritmos e Estruturas de dadosEstruturas de dados ÁRVORESÁRVORES ÁrvoresÁrvores ➲ Uma árvore é um conjunto não vazio de Uma árvore é um conjunto não vazio de nós (vértices) e arestas;nós (vértices) e arestas; ➲ Um dos nós é definido como sendo a Um dos nós é definido como sendo a Raiz;Raiz; ➲ Nós sem filhos são chamados de Folhas Nós sem filhos são chamados de Folhas (nós terminais ou externos)(nós terminais ou externos) ➲ Todo nó é raiz de uma sub-árvore que Todo nó é raiz de uma sub-árvore que consiste do nó em questão e todos os consiste do nó em questão e todos os demais nós que se encontram abaixo demais nós que se encontram abaixo dele.dele. ÁrvoresÁrvores ➲ O nó O nó raíz é aquele (único) nó que não tem raíz é aquele (único) nó que não tem ancestrais.ancestrais. Raiz da Árvore ÁrvoresÁrvores ➲ O Grau de um nó é o número de filhos desse nó.O Grau de um nó é o número de filhos desse nó. ➲ O Grau da Árvore é o máximo grau possível de ser O Grau da Árvore é o máximo grau possível de ser atingido por um nó da Árvore atingido por um nó da Árvore G = 3 G = 2 G = 3 G = 0 GA = 3 ÁrvoresÁrvores ➲ Nível de um nó é a distância do nó à RaizNível de um nó é a distância do nó à Raiz NN = 0 NN = 1 NN = 2 ÁrvoresÁrvores ➲ Altura da Árvore é o maior nível atingido por ela.Altura da Árvore é o maior nível atingido por ela. AA = 2 ÁrvoresÁrvores ➲ Caminho: Diz-se que existe um caminho entre dois Caminho: Diz-se que existe um caminho entre dois nós A e B de uma árvore, se a partir do nó A nós A e B de uma árvore, se a partir do nó A pode-se chegar ao nó B percorrendo-se as arestas pode-se chegar ao nó B percorrendo-se as arestas que ligam os nós intermediários entre A e B.que ligam os nós intermediários entre A e B. ➲ Caminho(1-7) => 1-2-7. Caminho(1-7) => 1-2-7. Características de uma ÁrvoreCaracterísticas de uma Árvore ➲ Número finito de nós.Número finito de nós. ➲ Cada nó possui de 0 a n filhos.Cada nó possui de 0 a n filhos. ➲ Todo nó, exceto a raiz, possui um único pai.Todo nó, exceto a raiz, possui um único pai. ➲ Só existe um caminho entre 2 nós da árvore.Só existe um caminho entre 2 nós da árvore. ➲ Uma árvore com N nós possui N - 1 arestas.Uma árvore com N nós possui N - 1 arestas. Aplicações de ÁrvoresAplicações de Árvores ➲ Representação de estruturas hierárquicas.Representação de estruturas hierárquicas. Exemplo: sumário de um livro, árvore Exemplo: sumário de um livro, árvore genealógica, organograma.genealógica, organograma. ➲ Representação de processos decisórios.Representação de processos decisórios. ➲ Ordenação e pesquisa.Ordenação e pesquisa. Algoritmos e Algoritmos e Estruturas de dadosEstruturas de dados ÁRVORES BINÁRIASÁRVORES BINÁRIAS Árvores BináriasÁrvores Binárias ➲ Uma árvore binária é um conjunto de Uma árvore binária é um conjunto de nós onde cada nó é composto por três nós onde cada nó é composto por três entidades:entidades: O conteúdo do nó (informação principal)O conteúdo do nó (informação principal) Um ponteiro (referência) para o nó seguinte à Um ponteiro (referência) para o nó seguinte à esquerdaesquerda Um ponteiro (referência) para o nó seguinte à Um ponteiro (referência) para o nó seguinte à direitadireita Árvores Binárias (de Pesquisa)Árvores Binárias (de Pesquisa) ➲ Cada nó possui de 0 a 2 filhosCada nó possui de 0 a 2 filhos ➲ O Conteúdo do nó possui uma chave de comparaçãoO Conteúdo do nó possui uma chave de comparação ➲ Para cada nó X:Para cada nó X: todos os nós com chave menor que X estão na sub-todos os nós com chave menor que X estão na sub- árvore à esquerda; eárvore à esquerda; e todos os nós com chave maior que X estão na sub-árvore todos os nós com chave maior que X estão na sub-árvore à direita.à direita. Árvore BináriaÁrvore Binária ➲ Dois tipos especiais de árvores binárias Dois tipos especiais de árvores binárias merecem atenção: as árvores merecem atenção: as árvores cheias e as cheias e as árvores completas.árvores completas. ► Uma árvore cheia não tem nenhum nó apontando para Uma árvore cheia não tem nenhum nó apontando para apenas um outro nó ==> cada nó tem 0 ou dois filhos.apenas um outro nó ==> cada nó tem 0 ou dois filhos. ► Uma árvore completa de altura (k) é tal que todos os nós Uma árvore completa de altura (k) é tal que todos os nós até a profundidade (nível) (k-2) apontam cada um para até a profundidade (nível) (k-2) apontam cada um para dois outros nós. Os nós de profundidade (k-1) estão dois outros nós. Os nós de profundidade (k-1) estão organizados de forma que, da esquerda para a direita, organizados de forma que, da esquerda para a direita, encontremos primeiramente os que apontam para dois nós, encontremos primeiramente os que apontam para dois nós, depois os que apontam para um nó e finalmente os que depois os que apontam para um nó e finalmente os que não apontam para nenhum outro nó. Os nós de não apontam para nenhum outro nó. Os nós de profundidade k são todos folhas.profundidade k são todos folhas. Árvores binárias Árvores binárias Uma Uma árvore cheia árvore cheia não tem nenhum nó não tem nenhum nó apontando para apenas um outro nó.apontando para apenas um outro nó. Árvores bináriasÁrvores binárias Uma árvore completa Uma árvore completa de altura (k) é tal que todos os nós até a de altura (k) é tal que todos os nós até a profundidade (k-2) apontam cada um para dois outros nós. Os profundidade (k-2) apontam cada um para dois outros nós. Os nós de profundidade (k-1) estão organizados de forma que, da nós de profundidade (k-1) estão organizados de forma que, da esquerda para a direita, encontremos primeiramente os que esquerda para a direita, encontremos primeiramente os que apontam para dois nós, depois os que apontam para um nó e apontam para dois nós, depois os que apontam para um nó e finalmente os que não apontam para nenhum outro nó. Os nós de finalmente os que não apontam para nenhum outro nó. Os nós de profundidade k são todos folhas.profundidade k são todos folhas. Árvores binárias – percursosÁrvores binárias – percursos ➲ Frequentemente, quando construímos uma árvore Frequentemente, quando construímos uma árvore binária, nosso interesse é recuperar os conteúdos binária, nosso interesse é recuperar os conteúdos dos nós segundo alguma disciplina de ordenação. dos nós segundo alguma disciplina de ordenação. Existem basicamente duas categorias de percurso: Existem basicamente duas categorias de percurso: Em profundidade ou em nível. Em profundidade se Em profundidade ou em nível. Em profundidade se divide em três formas mais comuns, denominadas divide em três formas mais comuns, denominadas pré-ordem, in-ordem e pós-ordem.pré-ordem, in-ordem e pós-ordem. ► Pré-ordem: são recuperados primeiros os conteúdos dos nós, e Pré-ordem: são recuperados primeiros os conteúdos dos nós, e depois de seus descendentes diretos.depois de seus descendentes diretos. ► Pós-ordem: são recuperados primeiros os conteúdos dos Pós-ordem: são recuperados primeiros os conteúdos dos descendentes, e depois dos próprios nós.descendentes, e depois dos próprios nós. ► In-ordem: os conteúdos são recuperados na seguinte seqüência: In-ordem: os conteúdos são recuperados na seguinte seqüência: descendente à esquerda, o próprio nó, descendente à direita.descendente à esquerda, o próprio nó, descendente à direita. Árvores binárias – percursosÁrvores binárias – percursos ➲ Exemplo: seja a árvore abaixo:Exemplo: seja a árvore abaixo: A B C D E F H IG ➲ Pré-ordem: ABDCEGFHI ➲ Pós-ordem: DBGEHIFCA ➲ In-ordem: BDAGECHFI Árvores binárias – percursosÁrvores binárias – percursos ➲ Em Nível, a idéia básica é percorrer a árvore Em Nível, a idéia básica é percorrer a árvore visitando a raiz; sub-árvore à esquerda e sub-árvore visitando a raiz; sub-árvore à esquerda e sub-árvore à direita utilizando uma fila. à direita utilizando uma fila. A B C D E F H IG ➲ Em-nível: ABCDEFGHI Slide1 Slide 2 Slide 3 Slide 4 Slide 5 Slide 6 Slide 7 Slide 8 Slide 9 Slide 10 Slide 11 Slide 12 Slide 13 Slide 14 Slide 15 Slide 16 Slide 17 Slide 18
Compartilhar