logo

B+ puu

B+ Tree on B-puun laajennus, joka mahdollistaa tehokkaat lisäys-, poisto- ja hakutoiminnot.

B-puussa avaimet ja tietueet voidaan tallentaa sekä sisäisiin että lehtisolmuihin. B+-puussa tietueita (dataa) voidaan tallentaa vain lehtisolmuihin, kun taas sisäiset solmut voivat tallentaa vain avainarvot.

10 prosenttia 60:stä

B+-puun lehtisolmut on linkitetty yhteen linkitettyjen luetteloiden muodossa hakukyselyiden tehostamiseksi.

B+ Puuta käytetään tallentamaan suuri määrä tietoa, jota ei voida tallentaa päämuistiin. Koska päämuistin koko on aina rajoitettu, B+-puun sisäiset solmut (tietueiden pääsyavaimet) tallennetaan päämuistiin, kun taas lehtisolmut tallennetaan toissijaiseen muistiin.

B+-puun sisäisiä solmuja kutsutaan usein indeksisolmuiksi. Seuraavassa kuvassa on luokkaa 3 oleva B+-puu.


B+ puu

B+ Treen edut

  1. Tietueita voidaan hakea yhtä monta kertaa levylle.
  2. Puun korkeus pysyy tasapainoisena ja vähemmän B-puuhun verrattuna.
  3. Voimme käyttää B+-puuhun tallennettuja tietoja sekä peräkkäin että suoraan.
  4. Avaimia käytetään indeksointiin.
  5. Nopeammat hakukyselyt, koska tiedot tallennetaan vain lehtien solmuihin.
B+ puun edut

B puu VS B+ puu

SN B Puu B+ puu
1 Hakuavaimia ei voi tallentaa toistuvasti. Redundantteja hakuavaimia voi olla läsnä.
2 Tietoja voidaan tallentaa lehtisolmuihin sekä sisäisiin solmuihin Tietoja voidaan tallentaa vain lehtien solmuihin.
3 Tietyn tiedon etsiminen on hitaampaa, koska tietoja löytyy sekä sisäisistä solmuista että lehtien solmuista. Haku on suhteellisen nopeampaa, koska tiedot löytyvät vain lehtien solmuista.
4 Sisäisten solmujen poistaminen on niin monimutkaista ja aikaa vievää. Poistaminen ei koskaan ole kompleksinen prosessi, koska elementti poistetaan aina lehtien solmuista.
5 Lehtisolmuja ei voi yhdistää toisiinsa. Lehtisolmut on linkitetty toisiinsa tehostaakseen hakutoimintoja.

Lisäys B+-puuhun

Vaihe 1: Lisää uusi solmu lehtisolmuksi

Vaihe 2: Jos lehdellä ei ole tarvittavaa tilaa, jaa solmu ja kopioi keskisolmu seuraavaan indeksisolmuun.

Vaihe 3: Jos indeksisolmussa ei ole tarvittavaa tilaa, jaa solmu ja kopioi keskimmäinen elementti seuraavalle hakemistosivulle.

Esimerkki:

Syötä arvo 195 seuraavan kuvan 5. kertaluvun B+-puuhun.


B + puu

195 lisätään oikeanpuoleiseen alipuuhun 120 luvun 190 jälkeen. Lisää se haluttuun kohtaan.


B + puu

Solmu sisältää enemmän kuin enimmäismäärän elementtejä eli 4, joten jaa se ja sijoita mediaanisolmu yläpäähän.


B + puu

Nyt indeksisolmu sisältää 6 lasta ja 5 avainta, mikä rikkoo B+-puun ominaisuuksia, joten meidän on jaettava se seuraavasti.


B + puu

Poisto B+-puussa

Vaihe 1: Poista avain ja tiedot lehdistä.

Vaihe 2: jos lehtisolmu sisältää vähemmän kuin vähimmäismäärä elementtejä, yhdistä solmu sen sisaruksen kanssa ja poista avain niiden välistä.

Vaihe 3: jos indeksisolmu sisältää vähemmän kuin vähimmäismäärä elementtejä, yhdistä solmu sisarukseen ja siirrä avain alas niiden välillä.

Esimerkki

Poista avain 200 seuraavassa kuvassa näkyvästä B+-puusta.

foreach java

B + puu

200 on oikeanpuoleisessa alipuussa 190, 195:n jälkeen. Poista se.


B + puu

Yhdistä kaksi solmua käyttämällä numeroita 195, 190, 154 ja 129.


B + puu

Nyt elementti 120 on solmussa oleva yksittäinen elementti, joka rikkoo B+-puun ominaisuuksia. Siksi meidän on yhdistettävä se käyttämällä numeroita 60, 78, 108 ja 120.

Nyt B+ puun korkeutta pienennetään yhdellä.


B + puu