B-strom: Porovnání verzí
Smazaný obsah Přidaný obsah
→Formální definice: upravil jsm vzorce pro # položek/potomků podle toho co je na EN wikipedii (a toho co nás učili na MFF) |
Oprava definice stromu - strom stupně n má v uzlu nejvýše n-1 položek a n potomků - dle skript z MFF UK (např zde http://kocour.ms.mff.cuni.cz/~pokorny/vyuka/pokorny/ ) |
||
Řádek 1:
'''B-strom''' je druh [[strom (datová struktura)|stromu]]. Jeho zvláštností je, že zavádí limity na maximální (konstantou ''n''), i minimální (
Příklad: Máme-li B-strom hloubky 2 a počet potomků každého uzlu je 1001, můžeme do něj uložit milion klíčů a ke každé položce se dostaneme maximálně po dvou diskových operacích.
Řádek 11:
*Všechny [[Strom (datová struktura)#Koncové uzly|listy]] (tj.uzly které nemají žádné potomky) jsou na stejné úrovní (ve stejné [[Strom (datová struktura)#Hloubka, Výška, Šířka, Úroveň a Cesta|hloubce]]).
*Všechny [[Strom (datová struktura)#Uzly ve stromu|uzly]] kromě kořene mají maximálně ''n'' a minimálně
*[[Strom (datová struktura)#Kořen stromu|Kořen]] má nejvýše ''n'' potomků, spodní hranice není omezena.
Řádek 22:
Data jsou ve stromu uložena jako setříděné hodnoty, které rozdělují strom na jednotlivé [[Strom (datová struktura)#Podstrom|podstromy]]. Například pokud nějaký uzel má tři potomky, musí být v tomto uzlu uloženy dva klíče ''k''<sub>1</sub> a ''k''<sub>2</sub>, které budou uzel rozdělovat. Všechny hodnoty které jsou menší než ''k''<sub>1</sub> musí být uloženy v levém podstromu, hodnoty které jsou větší než ''k''<sub>1</sub> a menší než ''k''<sub>2</sub> musí být uloženy v prostředním podstromu, a konečně všechny hodnoty větší než ''k''<sub>2</sub> musí být v pravém podstromu. Na tyto podstromy jsou samozřejmě v uzlu uloženy ukazatele.
*List tedy obsahuje
*Vnitřní uzel (tj. takový uzel, který není listem ani kořenem) obsahuje stejný počet klíčů ''k'', ale tyto klíče rozdělují potomky tohoto uzlu do ''k+1'' podstromů.
*Kořen ma maximálně ''n-1'' klíčů a nemusí mít žádné potomky - v tom případě je pak zároveň listem.
== Formální definice ==
Řádek 64:
Příklad: Máme B-strom stupně 5 tak,
<br style="clear: both;" />
|