Conceitos e
PESQUISA DE DADOS
PROF. MATEUS FILIPE DOMINGOS
Definições Básicas
Árvores são estruturas de dados extremamente úteis em muitas aplicações.
Uma árvore é formada por um conjunto finito T de elementos denominados
vértices ou nós de tal modo que se T = 0 a árvore é vazia, caso contrário temos um
nó especial chamado raiz da árvore (r), e cujos elementos restantes são particionados
em m>=1 conjuntos distintos não vazios, as sub-árvores de r, sendo cada um destes
conjuntos por sua vez uma árvore.
A forma convencional de representar uma árvore está indicado na figura abaixo.
Esta árvore tem nove nós sendo A o nó raiz.
Figura (1): Uma árvore
Os conjuntos das sub-árvores tem de ser disjuntos tem de ser disjuntos portanto a
estrutura indicada na Figura 2 não é uma árvore.
Se n é um nó da árvore T então Tn indica uma sub-árvore de T com raiz no nó n. Os nós n1, n2, ...,
nk das sub-árvores de Tn são chamados de filhos de n e n é o pai destes nós, que são nós irmãos.
Os nós B e C são filhos de A e nós irmãos. Nós sem filhos como os nós D, H, I, F e G são
chamados de folhas. A sub-árvore da esquerda do nó A tem raiz em B e a sub-árvore da direita
tem raiz em C, isto está indicado pelos dois ramos saindo de A. A ausência de um ramo na árvore
indica uma sub-árvore vazia, como a sub-árvore da direita do nó B. O número de de filhos de um
nó é chamado de grau de saída deste nó. Por exemplo, o nó C tem grau de saída 3 e o nó E grau 2.
Se o nó n é a raiz de uma sub-árvore Tn e n1 pertence a Tn então n1 é descendente
de n e n ancestral de n1. Portanto nós sem descendentes próprios é uma folha. Por exemplo, o
nó H é ancestral do nó C e o nó D é descendente do nó A.
Um caminho da árvore é composto por uma sequência de nós consecutivos (n1, n2,
..., nk-1, nk) tal que existe sempre a relação ni é pai de ni+1. Os k vértices formam k1 pares e um caminho de comprimento igual a k-1. O comprimento do caminho
entre o nó A e o nó H é 3.
O nível de um nó n pode ser definido do seguinte modo: o nó raiz tem nível 0, os
outros nós tem um nível que é maior uma unidade que o nível de seu pai. Na árvore
da figura anterior temos nós nos seguintes níveis:
•nível 0 = A
•nível 1 = B, C
•nível 2 = D, E, F, G
•nível 3 = H, I
A altura de um nó n é o número de nós do maior caminho de n até um de seus descendentes.
As folhas tem altura 1.
Existem diversas maneiras de representar árvores. Uma representação que reflete a idéia de
árvores como conjuntos aninhados é mostrado na figura 3 abaixo. A figura mostra o mesmo
conjunto da figura 1.
figura 3
Uma outra forma interessante de representar uma árvore é a representação por parênteses
aninhados. Da mesma forma que a figura 1 representa uma árvore no plano a representação
por parênteses representa uma árvore em uma linha. A sequência de parênteses representa a
relação entre os nós da estrutura.
O rótulo do nó é inserido à esquerda do abre parênteses
correspondente.
A árvore representada plenamente pela figura 1 pode ser representada
em uma linha por
(A (B(D))(C(E(H)(I))(F)(G)))
Esta representação tem importância, por exemplo, no tratamento de
expressões aritméticas, já que toda expressão aritmética pode ser colocada nesta forma.
Se colocarmos uma expressão nesta forma podemos então representá-la como uma árvore,
mostrando como ela seria calculada. Para colocarmos uma expressão em forma de
árvore devemos considerar cada operador como um nó da árvore e os seus operandos como as
duas sub-árvores.
Considere a expressão C seguinte que após receber todos os parênteses fica da seguinte maneira
(A + ((B-C)*(D%(E*F))))
Exercicio 1
Partindo da expressão acima, represente-as em uma arvore.
Removendo Nós de Árvores Binárias
1.Para remover um nó de uma árvore binária devemos considerar três casos: nó sem filhos;
2.nó com um único filho;
3.nó com dois filhos.
O caso de um nó sem filhos é o mais simples e significa apenas ajustar o ponteiro de seu pai. A
Figura remov0 ilustra este caso, onde o nó com o valor 8 é removido. No caso do nó ter um único
filho a mudança na árvore também é simples significa mover o nó filho daquele será removido
uma posição para cima como está ilustrado na Figura remove1, onde o nó com o valor 6 é
removido.
O caso mais complexo é o do nó com dois filhos. Neste caso devemos procurar o sucessor s (ou
antecessor) do nó deverá ocupar este lugar. Este nó (sucessor) é um descendente que está na sub
árvore da direita do nó e corresponde ao nó mais à esquerda desta árvore. Ele não tem filhos à
esquerda e a sua árvore à direita pode ser movida para o lugar de s. A Figura remove2 ilustra o
caso de remoção do nó com o valor 12. Observe que o nó 13 (sucessor) assumiu o lugar do nó 12.
Figura remove0: Removendo nó (8) sem filhos.
Figura remov1: Removendo nó (6) com um
filho.
Figura remov2: Removendo nó (12) com dois
filhos.
Download

Arvore de Pesquisa