logo

B+ tre

B+ Tree er en utvidelse av B Tree som tillater effektiv innsetting, sletting og søkeoperasjoner.

I B Tree kan nøkler og poster både lagres i interne så vel som bladnoder. Mens i B+-treet kan poster (data) bare lagres på bladnodene mens interne noder bare kan lagre nøkkelverdiene.

Bladnodene til et B+-tre er koblet sammen i form av en enkeltlenkede lister for å gjøre søkene mer effektive.

B+ Tree brukes til å lagre store mengder data som ikke kan lagres i hovedminnet. På grunn av det faktum at størrelsen på hovedminnet alltid er begrenset, lagres de interne nodene (nøkler for å få tilgang til poster) til B+-treet i hovedminnet, mens bladnoder lagres i sekundærminnet.

De interne nodene til B+-treet kalles ofte indeksnoder. Et B+-tre av størrelsesorden 3 er vist i følgende figur.


B+ tre

Fordeler med B+ Tree

  1. Poster kan hentes i like antall disktilganger.
  2. Høyden på treet forblir balansert og mindre sammenlignet med B-treet.
  3. Vi kan få tilgang til dataene som er lagret i et B+-tre sekvensielt så vel som direkte.
  4. Nøkler brukes til indeksering.
  5. Raskere søk ettersom dataene bare lagres på bladnodene.
B+ Tree fordeler

B-tre VS B+-tre

SN B tre B+ tre
1 Søketaster kan ikke lagres gjentatte ganger. Redundante søkenøkler kan være tilstede.
2 Data kan lagres i bladnoder så vel som interne noder Data kan kun lagres på bladnodene.
3 Å søke etter noen data er en langsommere prosess siden data kan bli funnet på interne noder så vel som på bladnodene. Søking er relativt raskere ettersom data bare finnes på bladnodene.
4 Sletting av interne noder er så komplisert og tidkrevende. Sletting vil aldri være en kompleks prosess siden element alltid vil bli slettet fra bladnodene.
5 Bladnoder kan ikke kobles sammen. Bladnoder er knyttet sammen for å gjøre søkeoperasjonene mer effektive.

Innsetting i B+ Tree

Trinn 1: Sett inn den nye noden som en bladnode

java-verdi av streng

Steg 2: Hvis bladet ikke har nødvendig plass, del noden og kopier den midterste noden til neste indeksnode.

Trinn 3: Hvis indeksnoden ikke har nødvendig plass, del noden og kopier midtelementet til neste indeksside.

Eksempel:

Sett inn verdien 195 i B+-treet av orden 5 vist i følgende figur.


B + Tre

195 vil bli satt inn i høyre undertre av 120 etter 190. Sett den inn i ønsket posisjon.


B + Tre

Noden inneholder mer enn det maksimale antallet elementer, dvs. 4, del den derfor opp og plasser mediannoden opp til overordnet.


B + Tre

Nå inneholder indeksnoden 6 barn og 5 nøkler som bryter med B+-treegenskapene, derfor må vi dele den, vist som følger.


B + Tre

Sletting i B+-tre

Trinn 1: Slett nøkkel og data fra bladene.

Steg 2: hvis bladnoden inneholder mindre enn minimum antall elementer, slå sammen noden med søsken og slett nøkkelen mellom dem.

Trinn 3: hvis indeksnoden inneholder mindre enn minimum antall elementer, slå sammen noden med søsken og flytt ned tasten mellom dem.

Eksempel

Slett nøkkelen 200 fra B+-treet vist i følgende figur.


B + Tre

200 er til stede i det høyre undertreet av 190, etter 195. slett det.


B + Tre

Slå sammen de to nodene ved å bruke 195, 190, 154 og 129.


B + Tre

Nå er element 120 det eneste elementet tilstede i noden som bryter B+ Tree-egenskapene. Derfor må vi slå den sammen ved å bruke 60, 78, 108 og 120.

Nå vil høyden på B+ treet reduseres med 1.


B + Tre