Sei sulla pagina 1di 27

Variaes da rvore B

Contedo

rvore B* rvore B+ rvore B+ de Prefixos rvore de Bit rvore R rvore 2-3-4

rvore B*

Um n em uma rvore B representa um !o"o na memria se"undria #"essar um n si$nifi"a fa%er a"esso & memria se"undria ' tarefa "ara ' (uanto menor o nmero de ns me!)or Uma rvore B* * uma variante da rvore B e foi "riada por +ona!d ,nut) e nomeada por +ou$!as Corner -m uma rvore B*. todos os ns. ex"eto a rai%. devem estar 2/3 ")eios 0ais pre"isamente. o nmero de ")aves * dado por
2m 1 Piso ( ) k m 3

rvore B*

# fre(u1n"ia de divis2o de ns * diminu3da 4a rvore B*. um n * dividido em tr1s. ao inv*s de dois +essa forma. a m*dia de uti!i%a52o da rvore B* * de 678 Para diminuir a fre(u1n"ia de divis9es. uma divis2o * atrasada : serve o prximo exemp!o em (ue a ")ave ; * inserida em uma rvore B* de ordem <

rvore B*

rvore B*

-m ve% de dividir o n. todos as ")aves desse n e seu irm2o s2o divididos i$ua!mente e a mediana * "o!o"ada no seu pai : aumento no fator de preen")imento pode ser feito de diversas formas

#!$uns an"os de dados o fator de preen")imento pode ser es"o!)ido entre 7 e =

Uma rvore B (ue possui o re(uisito de estar pe!o menos >=8 ")eia * ")amada rvore B** -sse "on"eito pode ser $enera!i%ado? Uma rvore B * uma rvore n +1 (ue possui a restri52o de estar n +2 ")eia @e um n e seu irm2o est2o ")eios. uma divis2o o"orre? um novo n * "riado e as ")aves s2o distri u3das entre os tr1s ns
n

rvore B*

rvore B+

rvore B+

Como um n em uma rvore B representa um !o"o na memria se"undria. a passa$em de um n para outro re(uer uma mudan5a de !o"os. (ue "onsome muito tempo # rvore B+ foi "riada para (ue seAam feitos um nmero m3nimo de a"essos aos ns -m uma rvore B+. as refer1n"ias aos dados s2o feitas apenas &s fo!)as :s ns internos de uma rvore B+ possuem 3ndi"es para rea!i%ar o a"esso mais rpido aos dados -ssa parte da rvore * ")amada "onAunto de 3ndi"es ou index set

rvore B+

#s fo!)as possuem uma estrutura diferente do index set -!as s2o en"adeadas se(uen"ia!mente formando um "onAunto se(uen"ia! ou se(uen"e set Camin)ar na !ista en"adeada formada pe!as fo!)as resu!ta em dados ordenados de forma "res"ente : nome rvore B+ foi dado pe!a se$uinte ra%2o?

B um indexador imp!ementado "omo uma rvore B mais uma !ista en"adeada de dados

# fi$ura a se$uir apresenta uma rvore B+

rvore B+

rvore B+

:s ns internos "ont*m ")aves. ponteiros e um "ontador de ")aves #s fo!)as "ont*m ")aves. refer1n"ias para re$istros em um ar(uivo de dados asso"iados "om as ")aves. e ponteiros para prxima fo!)a #s opera59es s2o simi!ares as opera59es rea!i%adas em uma rvore B Cnser52o?

@e a fo!)a "ont*m espa5o. a ")ave * "o!o"ada na fo!)a ade(uada mantendo a ordem das ")aves ' nen)uma mudan5a * feita no index set

rvore B+

Cnser52o?

@e a ")ave * inserida em uma fo!)a ")eia. a fo!)a * dividida e o novo n * inserido no se(uen"e set ' as ")aves s2o distri u3das i$ua!mente entre as fo!)as ' a primeira ")ave do novo n * "opiada para o n pai ' se o pai n2o est ")eio. os 3ndi"es s2o reor$ani%ados "aso seAa ne"essrio ' se o pai est ")eio. e!e * dividido "omo em uma rvore B Duando a remo52o n2o "ausa underf!oE. as ")avas s2o apenas reor$ani%adas no n

Remo52o?

rvore B+

Remo52o?

4en)uma a!tera52o * feita no index set

rvore B+

#rvore B+

Remo52o?

@e a remo52o "ausa um underf!oE. tanto as ")aves do n "om underf!oE (uanto as ")aves do seu irm2o s2o redistri u3das o n tam *m pode ser ex"!u3do e as ")aves s2o "o!o"adas no seu irm2o

#rvore B+

rvore B+ de Prefixos

rvore B+ de Prefixos

@e ) uma ")ave tanto no n interno (uanto no n fo!)a e a ")ave do n fo!)a pre"isa ser removida. * ne"essrio apenas remov1-!a da fo!)a. pois a ")ave do n interno ainda fun"iona "omo $uia na us"a : (ue importa. na verdade. * (ue a ")ave separadora seAa a"eitve!. se$uindo a "ondi52o ,7 F s FG ,2 Conse$uimos manter essa propriedade diminuindo a ")ave separadora o mximo poss3ve! e!iminando "ontedo redundante da ")ave Uma rvore B+ de prefixos simples * uma rvore B+ (ue possui as menores ")aves separadoras poss3veis (ue permitam duas ")aves de 3ndi"e adAa"entes

rvore B+ de Prefixos

rvore B+ de Prefixos

rvore B+ de Prefixos

Ha%er "om (ue as ")aves possuam va!ores m3nimos n2o a!tera o resu!tado da us"a 0ais separadores podem ser "o!o"ados no mesmo n. de forma (ue os ns podem ter mais fi!)os # rvore inteira pode ter menos n3veis. o (ue redu% o (ue torna a us"a da rvore mais rpida #s opera59es s2o simi!ares &s opera59es da rvore B+ "om modifi"a59es para determinar os prefixos no "onAunto de 3ndi"es

rvore B+ de Prefixos

#ps uma divis2o. a primeira ")ave do novo n n2o * "opiada para o n pai : prefixo mais "urto * en"ontrado (ue diferen"ia e!e da !tima ")ave no n a es(uerda. e ent2o o prefixo * "o!o"ado no n pai 4a remo52o. a!$uns separadores podem fi"ar muito !on$os. mas para tornar a remo52o mais rpida o separador n2o * a!terado -m uma rvore B+ de prefixos nos n3veis mais aixos da rvore a!$uns prefixos s2o omitidos

rvore B+ de Prefixos

rvore B+ de Prefixos

rvore B+ de Prefixos

-sse m*todo fun"iona em se os prefixos s2o !on$os e repetidos Para re"uperar o prefixo ori$ina!. a ")ave do pai. ex"!uindo o !timo "ara"tere. * "on"atenada "om "om a ")ave do n "orrente -xperimentos indi"aram (ue n2o ) muita diferen5a entre o tempo ne"essrio para exe"utar a!$oritmos em rvores B+ e rvores B+ de prefixos simp!es. mas rvores B+ de prefixos pre"isam de =I8 a 7II8 de mais tempo

rvore B+ de Prefixos

-m termos de a"esso ao dis"o. n2o ) muita diferen5a entre essas rvores para rvores "om at* 4II ns Para rvores de 4II a 6II ns. tanto as rvores B+ de prefixos simp!es e rvores B+ de prefixos ne"essitam de 2I-2=8 a menos de a"essos : (ue podemos "on"!uirJ

Potrebbero piacerti anche