logo

B+ medis

B+ Tree yra B Tree plėtinys, leidžiantis efektyviai atlikti įterpimo, trynimo ir paieškos operacijas.

B medyje raktai ir įrašai gali būti saugomi tiek vidiniuose, tiek lapų mazguose. Tuo tarpu B+ medyje įrašai (duomenys) gali būti saugomi tik lapų mazguose, o vidiniai mazgai gali saugoti tik pagrindines reikšmes.

B+ medžio lapų mazgai yra susieti atskirai susietų sąrašų forma, kad paieškos užklausos būtų veiksmingesnės.

B+ medis naudojami dideliam duomenų kiekiui, kurių negalima išsaugoti pagrindinėje atmintyje, saugoti. Dėl to, kad pagrindinės atminties dydis visada yra ribotas, B+ medžio vidiniai mazgai (įrašų prieigos raktai) yra saugomi pagrindinėje atmintyje, o lapų mazgai – antrinėje atmintyje.

Vidiniai B+ medžio mazgai dažnai vadinami indekso mazgais. Toliau esančiame paveikslėlyje parodytas 3 eilės B+ medis.


B+ medis

B+ medžio privalumai

  1. Įrašai gali būti paimti vienodu prieigų prie disko skaičiumi.
  2. Medžio aukštis išlieka subalansuotas ir mažesnis, palyginti su B medžiu.
  3. Duomenis, saugomus B+ medyje, galime pasiekti nuosekliai ir tiesiogiai.
  4. Raktai naudojami indeksavimui.
  5. Greitesnės paieškos užklausos, nes duomenys saugomi tik lapų mazguose.
B+ medžio privalumai

B medis VS B+ medis

SN B Medis B+ medis
1 Paieškos klavišai negali būti pakartotinai saugomi. Gali būti perteklinių paieškos raktų.
2 Duomenys gali būti saugomi lapų mazguose ir vidiniuose mazguose Duomenys gali būti saugomi tik lapų mazguose.
3 Kai kurių duomenų paieška yra lėtesnė, nes duomenis galima rasti tiek vidiniuose, tiek lapų mazguose. Paieška yra palyginti greitesnė, nes duomenis galima rasti tik lapų mazguose.
4 Vidinių mazgų ištrynimas yra toks sudėtingas ir atima daug laiko. Ištrynimas niekada nebus sudėtingas procesas, nes elementas visada bus ištrintas iš lapų mazgų.
5 Lapų mazgai negali būti susieti kartu. Lapų mazgai yra susieti kartu, kad paieškos operacijos būtų efektyvesnės.

Įterpimas į B+ medį

1 žingsnis: Įdėkite naują mazgą kaip lapo mazgą

2 žingsnis: Jei lape nėra reikiamos vietos, padalinkite mazgą ir nukopijuokite vidurinį mazgą į kitą indekso mazgą.

3 veiksmas: Jei indekso mazge nėra reikiamos vietos, padalinkite mazgą ir nukopijuokite vidurinį elementą į kitą rodyklės puslapį.

Pavyzdys :

Įveskite reikšmę 195 į B+ 5 eilės medį, parodytą toliau pateiktame paveikslėlyje.


B + medis

195 bus įterptas į dešinįjį 120 pomedį po 190. Įdėkite jį į norimą vietą.


B + medis

Mazge yra didesnis nei maksimalus elementų skaičius, ty 4, todėl padalinkite jį ir padėkite vidurinį mazgą iki pirminio.


B + medis

Dabar indekso mazge yra 6 vaikai ir 5 raktai, kurie pažeidžia B+ medžio savybes, todėl turime jį padalinti, kaip parodyta taip.


B + medis

Ištrynimas B+ medyje

1 žingsnis: Ištrinkite raktą ir duomenis iš lapų.

2 žingsnis: jei lapo mazge yra mažiau nei minimalus elementų skaičius, sujunkite mazgą su jo broliu ir ištrinkite tarp jų esantį raktą.

3 veiksmas: jei indekso mazge yra mažiau nei minimalus elementų skaičius, sujunkite mazgą su seserimi ir perkelkite klavišą žemyn tarp jų.

Pavyzdys

Ištrinkite raktą 200 iš B+ medžio, parodyto kitame paveikslėlyje.


B + medis

200 yra dešiniajame 190 pomedyje, po 195. ištrinti.


B + medis

Sujunkite du mazgus naudodami 195, 190, 154 ir 129.


B + medis

Dabar elementas 120 yra vienintelis mazge esantis elementas, kuris pažeidžia B+ medžio savybes. Todėl turime jį sujungti naudodami 60, 78, 108 ir 120.

Dabar B+ medžio aukštis bus sumažintas 1.


B + medis