Professional Documents
Culture Documents
rvores
Prof. Eder Stone Fontoura Adaptao dos slides da Profa. Cristina Nunes
rvores
Definio
existe um nodo denominado raiz da rvore; os demais nodos formam m 0 subconjuntos disjuntos t1, t2, ..., tm, onde cada um desses subconjuntos uma rvore. as rvores ti (1 i M) recebem a denominao de sub-rvore.
D = Raiz C e E = sub-rvores
A
t1
B
t2
Definio
Um mesmo nodo no aparece em mais de uma sub-rvore ao mesmo tempo nunca teremos sub-rvores interligadas.
A B D C
No rvore!!!
Definio
Se X um n que antecede um n Y, X pai de Y ou Y filho de X. Nodos que possuem um mesmo pai so ditos irmos A raiz o nico nodo que no possui pai
Raiz
G pai de H H filho de G
A e B so irmos 5
Terminologia
Floresta: Se retirarmos o nodo raiz de uma rvore que contm subrvores estaremos criando uma floresta. Os filhos da raiz original sero as raizes das novas rvores.
D C E B G
Floresta
A B F H
Terminologia
Terminologia
Grau = 2
Grau = 1
Nvel de um Nodo: nmero de linhas que liga o n raiz. O nvel do nodo raiz 0.
D
Nvel = 0
E
Nvel = 1
Nvel = 1
Nvel = 2 A
Nvel = 2
Nvel = 2
Terminologia
Altura = 2
E
rvore ordenada: quando existe uma ordem linear definida para os filhos de uma rvore.
Formas de Representao
Armazenamento da rvore em um vetor. Cada posio por vetor pode, por exemplo, conter, alm da informao do nodo, referncias aos nodos filhos.
Representao:
10
Formas de Representao
Registro fixo
Se o grau da rvore for baixo e/ou a variabilidade do grau entre os nodos for pouca.
A B
nulo
C
nulo nulo
nulo
E
nulo nulo nulo
F
nulo nulo nulo
G
nulo nulo nulo
H
nulo nulo
I
nulo nulonulo
Problema:
nulonulo nulo
No caso de rvores genricas, em que cada nodo pode ter uma quantidade de sub-rvores diferentes, necessrio limitar o nmero mximo de sub-rvores que cada nodo deve conter. Nodos de uma mesma rvore so todos do mesmo tipo.
11
rvores Binrias
Estruturas do tipo rvore, onde o grau de cada nodo sempre menor ou igual a 2. Caso especial de rvore em que nenhum nodo tem mais que dois filhos. Existe um senso de posio: distingue-se entre uma sub-rvore esquerda e uma sub-rvore direita.
D B E
F No rvore binria
sub-rvore da direita
sub-rvore da esquerda
12
Propriedades
O nmero mximo de nodos em uma rvore binria com altura K 2K+1 - 1, para K 0. rvore completa: rvore de altura K com 2K+1 - 1 nodos.
D B F
Altura = 2 Nodos = 7
13
A transformao de uma rvore binria produz uma alterao na estrutura fsica da mesma, o que pode provocar uma interpretao errnea da relao hierrquica existente na rvore original. Para se interpretar corretamente a hierarquia de uma rvore transformada em rvore binria, deve-se ter em mente a transformao havida. Assim, a sub-rvore da esquerda de um n o filho deste n, enquanto que a sub-rvore da direita o seu irmo. A transformao de uma rvore em rvore binria oferece a vantagem de no requerer conhecimento prvio da mesma, para fins de alocao encadeada. A desvantagem em relao primeira alternativa reside no fato de no se ter acesso direto de um n pai para qualquer um dos filhos, j que para acessar o i-simo filho necessrio acessar os (i - 1) anteriores.
14
Etapa1: Conecta-se os nodos irmos; Etapa2: Desconecta-se o nodo pai dos nodos filhos, exceto do 1 filho.
15
Redesenhando
16
Representao
A B C E F G D
17
Uma rvore binria, cuja raiz armazena o elemento R, denominada rvore de busca binria se:
todo elemento armazenado na sub-rvore esquerda menor que R; todo elemento armazenado na sub-rvore direita maior que R; as sub-rvores esquerda e direita tambm so rvores de busca binria
D B F
18
Operaes Bsicas
Criar a rvore Inserir nodos na rvore Pesquisar nodos na rvore Excluir nodos da rvore Determinar a altura da rvore Determinar o nvel de um nodo Caminhar em uma rvore
19
Insero
um nodo no pode entrar numa rvore e j assumir filhos. Comeamos pelo nodo raiz. Como C menor que E, tomamos a sub-rvore da esquerda. Comparando com a nova raiz temos C > B e conclui-se que o elemento deve ser armazenado na sub-rvore direita. O processo se repete at chegarmos a uma sub-rvore nula. Nesse momento, uma folha alocada para armazenar o novo elemento e entra como raiz da sub-rvore nula.
E C B A D F G Inserindo C A C B D F G E
20
Pesquisa
Dado um elemento X a ser procurado entre os nodos da rvore, temos quatro possibilidades a considerar:
uma rvore nula, portanto no h nada a fazer; A raiz armazena o elemento X; O valor de X menor que aquele armazenado na raiz: deve-se prosseguir com a busca na sub-rvore esquerda; O valor de X maior ou igual que aquele armazenado na raiz: deve-se prosseguir com a busca na sub-rvore direita.
21
Exerccios
Implementar um programa para criar rvores binrias de busca. Desenvolver as seguintes funes:
Adicionar elementos Apresentar a informao de todos os elementos O n com a informao x encontra-se na rvore? Nvel do n com a informao x x um n externo ou interno? 22
Caminhamentos
Visitar cada nodo apenas uma vez. Pr-fixado (ou pr-ordem) Central (ou em-ordem) Ps-fixado (ou ps-ordem)
Tipos
23
Caminhamento Pr-fixado
Passos:
Primeiro: Visita Raiz Segundo: Percorre sub-rvore da esquerda Terceiro: Percorre sub-rvore da direita
24
Caminhamento Central
Passos:
Primeiro: Percorre sub-rvore da esquerda Segundo: Visita Raiz Terceiro: Percorre sub-rvore da direita
25
Caminhamento Ps-ordem
Passos
Primeiro: Percorre sub-rvore da esquerda Segundo: Percorre sub-rvore da direita Terceiro: Visita Raiz
26
Exemplo
* /
27
Alternativas:
28
rvore Balanceada
custo para manipular uma informao na rvore se mantm semelhante tanto para os ramos esquerda quanto para os ramos direita.
As suas sub-rvores esquerda e direita possuem a mesma altura. Quando uma rvore cresce muito para um dos lados ela dita degenerada (ou desbalanceada).
rvore balanceada rvore degenerada
29
rvore Balanceada
O processo de balanceamento pode se tornar muito pesado quando a rvore contm muitos ns e vrias inseres so feitas. Em 1962, dois matemticos russos (Adelson Velskii e Landis) introduziram um conceito menos rigoroso de rvores balanceadas.
Uma rvore considerada balanceada quando, para cada n n, as alturas das sub-rvores esquerda e direita diferem no mximo de 1. A esta diferena chamamos de "fator de balanceamento de n (FatBal(n)). Este algoritmo conhecido como rvore AVL.
30
rvore Balanceada
Caractersticas
Diferena da altura da sub-rvore esquerda e direita no mximo 1 Se um nodo raiz no satisfaz a condio de altura, ento ele considerado desbalanceado.
Exemplo
rvore AVL
Altura(100) = Altura(SD) Altura(SE) Altura(100) = 2 1 = 1
rvore desbalanceada
Altura(150) = Altura(SD) Altura(SE) Altura(150) = 2 0 = 2
31
rvore Balanceada
Balanceamento
Processo que busca a distribuio equilibrada dos nodos de modo a otimizar a operao de consulta, isto , minimizar o nmero mdio de comparaes necessrias para localizar uma chave. desejvel que as chaves mais solicitadas estejam prximas raiz. Uma rvore completamente balanceada se a distncia mdia dos nodos at a raiz for mnima.
32
rvore-B
So rvores balanceadas projetadas para trabalhar com dispositivos de armazenamento secundrio como discos magnticos por exemplo. Visam otimizar as operaes de entrada e sada nos dispositivos.
O tempo de acesso s informaes em um disco prejudicado principalmente pelo tempo de posicionamento do brao de leitura. Uma vez que o brao esteja posicionado no local correto, a leitura pode ser feita de forma bastante rpida.
Diferente das rvores binrias, cada n em uma rvore B pode ter muitos filhos
33
rvore-B
Definio
A raiz tem no mnimo uma chave e dois filhos; Uma folha tem no mnimo d chaves e no tem filhos; Todos os outros ns tm no mnimo d chaves e d+1 filhos; Todos os ns tm, no mximo, 2d chaves e 2d+1 filhos.
34
rvore-B
Estrutura
Os nodos so compostos por chaves, ponteiros e informaes. Para cada chave est associada somente uma informao. Pode-se ter informaes adicionais que facilitam a manipulao dos nodos
Ex.: um campo para guardar o endereo do nodo pai e o nmero de chaves ativas dentro dos nodos
Existe um ponteiro externo que aponta para raiz, indicando o incio da rvore.
35
rvore-B
Exemplo
rvore B de ordem 2 (d = 2)
O nodo raiz pode conter no mnimo 1 chave e 2 apontadores e no mximo 4 chaves com 5 apontadores. Os nodos internos podero conter no mnimo 2 chaves com 3 apontadores e no mximo 4 chaves com 5 apontadores.
36
rvore-B
Principais Vantagens:
A utilizao de memria de no mnimo 50%. As operaes realizadas sobre a rvore-B tem como conseqncia uma ordenao natural das chaves. tima para operaes do tipo:
recuperar um determinado nmero de registros a partir de uma chave ou encontrar sucessores e predecessores
37
rvore-B
atravs da diviso de um nodo em dois irmos ou atravs da unio de dois irmos em um nico nodo.
O aumento ou diminuio da rvore so processos que sempre iniciam nos nodos folha e podem propagar-se at a raiz. Operaes:
Pesquisa:
Anloga ao percurso em rvores binrias de busca. Numa pesquisa binria, os ramos da rvore tomados para um nodo dependem da comparao entre a chave pesquisada e a chave armazenada no nodo. Se a chave pesquisada menor tomado o brao esquerdo, se for maior o direito.
Consultar: http://www.lcad.icmc.usp.br/~nonato/ED/B_arvore/btreebusca.htm
38
rvore-B
Insero:
feita uma pesquisa at a folha apropriada para ser feita a insero. Existem 3 possibilidades:
se existir espao na folha, o dado simplesmente inserido; se no houver espao no nodo, verifica-se no irmo adjacente se h espao. Se houver, toma-se a chave mais a direita do nodo a inserir e promove a "chave pai". A "chave pai" anterior inserida no irmo adjacente. Desta forma, abre-se um espao no nodo em que a chave deve ser inserida; se no houver espao no irmo adjacente, deve ocorrer a ciso do nodo em que a chave deve ser inserida . Neste caso, total de chaves em um nodo dividido d, ficando assim as d menores chaves em um nodo e as d maiores chaves em outro. A chave mais esquerda das d maiores chaves promovida a "chave pai" ( inserida no nodo pai) dos nodos criados na ciso. Deste modo criado um espao nas folhas para ocorrer a insero. Se o nodo pai est cheio, o mesmo processo aplicado para ele, e assim consecutivamente
Consultar: http://www.lcad.icmc.usp.br/~nonato/ED/B_arvore/btreeinsercao.htm
39
A C D E J K
N O
Y Z R S T U V
Incluso da Chave B
G M P X
A B C C D D E E J K
N O
Y Z R S T U V
40
Chavei1[x]
Chavei[x]
.....
.....
N=7
Incluso da Chave O
Chavei[x] Chavei1[x] Chavei+1[x]
.....
.....
S W
O P
Q Q P R
R S
N=4
N=3 41
N=7 A1 A2 A3 A4 A5 A6 A7 A8
Incluso da Chave E
H
N=1
E F
F H
A1 A2 A3 A4 A5 A6 A7 A8 N=4
A1 A2 A3 A4
N=3 42
rvore-B
Excluso:
simplesmente excluda; uma chave adjacente procurada e transferida para o local onde encontrase a chave a ser excluda. esta chave pode ser a primeira chave da folha mais esquerda da subrvore direita ou a ltima chave da folha mais direita da sub-rvore esquerda. a chave substituta retirada de uma folha, o que nos leva a uma retirada em folha.
43
rvore-B
verificamos a ordem dos irmos adjacentes. feita uma redistribuio. A chave mais a esquerda do irmo adjacente promovida a "chave pai" e a "chave pai" anterior inserida no nodo em que a chave foi retirada (semelhante a insero). feita uma concatenao. Juntar em um nico n as chaves dos irmos adjacentes mais a "chave pai", eliminado um nodo folha e uma chave (a "chave pai") do nodo pai. Dependendo do nmero de chaves do nodo pai, pode resultar em uma nova redistribuio ou em uma nova concatenao.
Consultar: http://www.lcad.icmc.usp.br/~nonato/ED/B_arvore/btreeremocao.htm
44
rvore-B
50 25 30 55 70 60 80
Remover 80
50 25 30 55
60 70 60 70 80
45