Baixe o app para aproveitar ainda mais
Prévia do material em texto
ÁRVORE AEDS 1 CONCEITOS BÁSICOS Organiza um conjunto de acordo com uma estrutura hierárquica. Contém elementos que são chamados de nós O “pai de todos” é a raiz – 1º. da hierarquia O conteúdo de um nó pode ser de qualquer tipo que se deseje representar As árvores da computação têm a curiosa tendência de crescer para baixo… CONCEITOS BÁSICOS Um único nó é uma árvore. Este nó é raiz da árvore. Suponha que n é um nó e T1, T2, ...,Tk sejam árvores com raízes n1,n2,...,nk , respectivamente. Podemos construir uma nova árvore tornando n a raiz e T1, T2, ...., Tk sejam subárvores da raiz. Nós n1, n2, ..., nk são chamados filhos do nó n. EXEMPLO EXEMPLO Inteligência Artificial (IA): Árvores de Decisão EXEMPLO Processamento Digital de Imagens (PDI), Visão Computacional: Árvore denominada Quadtree. Aplicação Isolamento de pontos. ÁRVORE BINÁRIA Uma árvore binária é um conjunto finito de elementos que está vazio ou é particionado em três subconjuntos disjuntos. O primeiro subconjunto contém um único elemento, chamado raiz da árvore. Os outros dois subconjuntos são em si mesmos árvores binárias, chamadas subárvores esquerda e direita da árvore original. Uma subárvore esquerda ou direita pode estar vazia. Cada elemento de uma árvore binária é chamado nó da árvore. ÁRVORE BINÁRIA DE BUSCA Uma árvore binária de pesquisa é uma árvore binária em que cada nó contém uma chave de pesquisa e apresenta a seguinte propriedade: Cada nó da subárvore à esquerda tem valor da chave menor que a chave do nó; Cada nó da subárvore à direita tem valor da chave maior que a chave do nó. EXEMPLO Árvore Binária – Cada nó tem no máximo dois filhos. • Obs: a árvore ao lado não impõe nenhuma ordenação em seus nodos. CAMINHO Um caminho de ni a nk , onde ni é antecedente a nk , é a sequência de nós para se chegar de ni a nk . Se ni é antecedente a nk , nk é descendente de ni. O comprimento do caminho é o número de nós do caminho – 1. OUTROS CONCEITOS Nó que não tem antecedente: raiz; Nós que não tem descendentes são chamados de folhas. (Os outros são os nós internos) A altura de um nó na árvore é o caminho de maior comprimento que se pode fazer deste nó a uma folha. A altura da árvore é a altura de sua raiz. A profundidade de um nó é o comprimento da raiz até o nó (só existe um caminho) RESUMO DE TERMOS 1. Grau de um nó: é o número de sub-árvores do nó. 2. Grau de uma árvore: é o máximo grau dos nós na árvore. 3. Folhas de uma árvore: são os nós de grau zero. 4. Filhos de um nó X: são as raízes das sub-árvores do nó X. Neste caso X é o Pai de seus filhos. 5. Nível de um nó: a raiz da árvore é dita estar no nível zero, se um nó está no nível k, seus filhos estão no nível k+1. 6. Altura ou profundidade de uma árvore: é o nível máximo dos nós na árvore. 7. Ancestrais de um nó: são todos os nós ao longo do caminho a partir da raiz até o nó. 8. Floresta: conjunto de árvores disjuntas. ÁRVORE BINÁRIA - ESTRUTURA DE DADOS PROCEDIMENTO DE INSERÇÃO NA ÁRVORE Atingir um apontador nulo em um processo de pesquisa significa uma pesquisa sem sucesso. O apontador nulo atingido é o ponto de inserção. Obs: O apontador deve ser passado por referência para poder ligar corretamente o novo nodo à árvore. PROCEDIMENTO DE INSERÇÃO NA ÁRVORE Algoritmo de inserção de uma chave, key , em uma árvore: se a árvore é vazia: criar uma nova árvore com a nova chave; se a chave de busca é menor que a do nó: insere na subárvore da esquerda; se a chave de busca é maior que a do nó: insere na subárvore da direita. INSERE ELEMENTO NA ÁRVORE BINÁRIA RETIRADA DE ELEMENTO OBSERVAÇÕES 1. A retirada de um registro não é tão simples quanto a inserção. 2. Se o nó que contém o registro a ser retirado possui no máximo um descendente ⇒ a operação é simples. 3. No caso do nó conter dois descendentes o registro a ser retirado deve ser primeiro: – substituído pelo registro mais à direita na subárvore esquerda; – ou pelo registro mais à esquerda na subárvore direita. REMOÇÃO EM ÁRVORE REMOÇÃO DE NÓ COM UM FILHO. REMOÇÃO DE NÓ COM DOIS FILHOS RETIRADA DE UM ELEMENTO DA ÁRVORE Para retirar o registro com chave 5 da árvore basta trocá-lo pelo registro com chave 4 ou pelo registro com chave 6, e então retirar o nó que recebeu o registro com chave 5. RETIRA ELEMENTO OBS: O procedimento Recursivo Antecessor só é ativado quando o nó que contém registro a ser retirado possui 2 descendentes. Solução usada por Wirth, 1976, p.211. AJUSTE DA ÁRVORE PARA REMOÇÃO Quando o registro a ser retirado possui dois descendentes então retorna se para o nó antecessor para fazer o ajuste dos apontadores no nós filhos antes de remover o nó pai. RETIRADA DE NÓS CAMINHAMENTO EM ÁRVORE A ordem dos filhos dos nós em uma árvore pode ser ou não significativa. Em árvores binárias por exemplo a ordem é significativa. Considera-se que se a e b são nós irmãos, e a está à esquerda de b, então todos seus descendentes estão à esquerda de b. CAMINHAMENTO EM ÁRVORE ● Diversas formas de percorrer ou caminhar em uma árvore listando seus nós, as principais: ○ Pré-ordem (Pré-fixada) ○ Central (Infixada) ○ Pós-ordem (Pós-fixada) ● Para todas elas: ○ Se T é uma árvore nula, então a lista é nula. ○ Se T é uma árvore de um único nó então a lista contém apenas este nó. CAMINHAMENTO EM ÁRVORE ● PRÉ-ORDEM: Caminha visitando primeiro o nó pai então segue para o nó filho da esquerda e só então visita o nó filho da direita. ● ORDEM CENTRAL: Caminha visitando primeiro os nós mais a esquerda, depois os nós pais e então os nós a direita ● PÓS-ORDEM: Caminha visitando primeiro os nós da esquerda, depois os nós da direita e então os nós pais. CAMINHAMENTO PRÉ-ORDEM SAÍDA: 1 2 4 7 A B 3 5 6 8 C 9 CAMINHAMENTO EM ÁRVORE PRÉ-ORDEM CAMINHAMENTO CENTRAL SAÍDA: A 7 B 4 2 1 5 3 C 8 6 9 CAMINHAMENTO PÓS-ORDEM SAÍDA:A B 7 4 2 5 C 8 9 6 3 1
Compartilhar