33 lines
869 B
Python
33 lines
869 B
Python
from utils.algo_context import AlgoContext
|
||
from utils.algo_array import Array
|
||
|
||
|
||
class BTreeNode:
|
||
"""
|
||
Knoten eines B-Baums.
|
||
|
||
value – Array der Schlüssel (Kapazität: 2m-1)
|
||
n – Anzahl aktuell gespeicherter Schlüssel
|
||
leaf – True wenn Blattknoten
|
||
loaded_count / saved_count – Disk-I/O-Zähler für externe Komplexitätsanalyse
|
||
"""
|
||
|
||
def __init__(self, m: int, ctx: AlgoContext):
|
||
self.m = m
|
||
self.ctx = ctx
|
||
self.n = 0
|
||
self.leaf = True
|
||
self.value = Array([0] * (2 * m - 1), ctx)
|
||
self.children = [None] * (2 * m)
|
||
self.loaded_count = 0
|
||
self.saved_count = 0
|
||
|
||
def load(self):
|
||
self.loaded_count += 1
|
||
|
||
def save(self):
|
||
self.saved_count += 1
|
||
|
||
def __str__(self):
|
||
return "(" + " ".join([str(self.value[i]) for i in range(self.n)]) + ")"
|